subindev 개발 블로그

[Xamarin.Forms] Entry, Editor 밑줄 없애기 효과 본문

.NET/Xamarin

[Xamarin.Forms] Entry, Editor 밑줄 없애기 효과

subindev 2025. 12. 5. 16:38

📌 Xamarin.Forms(Android) Entry 밑줄 제거

✔ Android 커스텀 렌더러 사용

✔ XAML에서 아주 간단하게 적용 가능

✔ 모든 Entry에 적용하거나 특정 Entry에만 적용 가능

 


1. Shared 프로젝트에 Effects 폴더 생성

MOBILE_TEST/Effects/PlainEntry.cs 파일 만들기

using Xamarin.Forms;

namespace MOBILE_TEST.Effects
{
    public class PlainEntry : RoutingEffect
    {
        public PlainEntry() : base("MyCompany.PlainEntry")
        {
        }
    }
}

✔ 역할: “PlainEntry”라는 이름의 효과(Efffect) 정의

✔ Android 렌더러에서 이 이름을 사용해 매칭한다.


 

2. Android 프로젝트에 Effects 폴더 생성

MOBILE_TEST.Android/Effects/PlainEntryEffect.cs 만들기

using Android.Content;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
using MOBILE_TEST.Droid.Effects;

[assembly: ResolutionGroupName("MyCompany")]
[assembly: ExportEffect(typeof(PlainEntryEffect), nameof(PlainEntryEffect))]
namespace MOBILE_TEST.Droid.Effects
{
    public class PlainEntryEffect : PlatformEffect
    {
        protected override void OnAttached()
        {
            if (Control != null)
            {
                // 밑줄 제거
                Control.Background = null;

                // 추가로 패딩 제거하고 싶으면 주석 해제
                // Control.SetPadding(0, 0, 0, 0);
            }
        }

        protected override void OnDetached() { }
    }
}

✔ 밑줄 제거 핵심 부분:

Control.Background = null;

 


 

 3. XAML에서 Entry에 Effect 적용하기

이제 XAML에서 아주 간단하게 쓰면 된다.


✔ 네임스페이스 추가

(상단 ContentPage 태그 부분)

xmlns:effects="clr-namespace:MOBILE_TEST.Effects"


✔ Entry에 적용하기

<Entry Placeholder="아이디를 입력하세요">
    <Entry.Effects>
        <effects:PlainEntry />
    </Entry.Effects>
</Entry>

이렇게 하면 Android 기본 밑줄이 제거