wpf에서 버튼 테두리를 어떻게 완전히 제거합니까?
Firefox 툴바 버튼처럼 마우스를 가져 가서 전체 버튼을 보려면 이미지가 있고 테두리가없는 버튼을 만들려고합니다.
BorderBrush
에서 Transparent
, BorderThickness
으로 설정하고 0
시도 BorderBrush="{x:Null}"
했지만 버튼의 개요를 계속 볼 수 있습니다.
이 시도
<Button BorderThickness="0"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" >...
버튼 템플릿을 변경해야 할 수도 있습니다. 이렇게하면 프레임이없고 버튼을 누르거나 비활성화 할 수없는 버튼이 나타납니다.
<Style x:Key="TransparentStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="Transparent">
<ContentPresenter/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
그리고 버튼 :
<Button Style="{StaticResource TransparentStyle}"/>
당신이해야 할 일은 다음과 같습니다.
<Button Name="MyFlatImageButton"
Background="Transparent"
BorderBrush="Transparent"
BorderThickness="0"
Padding="-4">
<Image Source="MyImage.png"/>
</Button>
이것이 당신이 찾고있는 것이기를 바랍니다.
편집 : 죄송합니다. 이미지 위로 마우스를 가져갈 때 버튼 테두리를 보려면 Padding = "-4"를 건너 뛰면 됩니다.
왜 다른 사람들 이이 질문이 대답이 허용 된 질문과 중복된다고 지적하지 않았는지 모르겠습니다 .
여기 솔루션을 인용 : 당신은 오버라이드 (override) 할 필요가 ControlTemplate
의를 Button
:
<Button Content="save" Name="btnSaveEditedText"
Background="Transparent"
Foreground="White"
FontFamily="Tw Cen MT Condensed"
FontSize="30"
Margin="-280,0,0,10"
Width="60"
BorderBrush="Transparent"
BorderThickness="0">
<Button.Template>
<ControlTemplate TargetType="Button">
<ContentPresenter Content="{TemplateBinding Content}"/>
</ControlTemplate>
</Button.Template>
</Button>
다음과 같이 Button 대신 하이퍼 링크를 사용할 수 있습니다.
<TextBlock>
<Hyperlink TextDecorations="{x:Null}">
<Image Width="16"
Height="16"
Margin="3"
Source="/YourProjectName;component/Images/close-small.png" />
</Hyperlink>
</TextBlock>
이미 툴바 안에 버튼을 넣는 것이 이러한 동작을 제공한다는 것을 알고 있을지 모르지만, 모든 현재 테마에서 어떤 종류의 예측 가능성으로 작동하는 것을 원한다면 새로운 ControlTemplate을 만들어야합니다.
Prashant의 솔루션은 단추에 포커스가있을 때 도구 모음에없는 단추와 작동하지 않습니다. XP의 기본 테마에서는 100 % 작동하지 않습니다. 컨테이너 배경이 흰색 일 때 희미한 회색 테두리를 볼 수 있습니다.
프로그래밍 방식으로 다음을 수행 할 수 있습니다.
btn.BorderBrush = new SolidColorBrush(Colors.Transparent);
Why don't you set both Background & BorderBrush
by same brush
<Style TargetType="{x:Type Button}" >
<Setter Property="Background" Value="{StaticResource marginBackGround}"></Setter>
<Setter Property="BorderBrush" Value="{StaticResource marginBackGround}"></Setter>
</Style>
<LinearGradientBrush x:Key="marginBackGround" EndPoint=".5,1" StartPoint="0.5,0">
<GradientStop Color="#EE82EE" Offset="0"/>
<GradientStop Color="#7B30B6" Offset="0.5"/>
<GradientStop Color="#510088" Offset="0.5"/>
<GradientStop Color="#76209B" Offset="0.9"/>
<GradientStop Color="#C750B9" Offset="1"/>
</LinearGradientBrush>
참고URL : https://stackoverflow.com/questions/995757/how-do-you-completely-remove-the-button-border-in-wpf
'development' 카테고리의 다른 글
AngularJS-ngRepeat 필터링 된 결과 참조를 얻는 방법 (0) | 2020.07.06 |
---|---|
배경을 투명하게 변환하는 방법? (0) | 2020.07.06 |
디렉토리를 재귀 적으로 만들려면 어떻게해야합니까? (0) | 2020.07.06 |
필드가 많거나 많은 Django 모델의 객체를 만드는 방법은 무엇입니까? (0) | 2020.07.06 |
SDK iOS 8.0의 제품 유형 단위 테스트 번들에는 코드 서명이 필요합니다. (0) | 2020.07.06 |