2017-02-20 8 views
1

둥근 모서리와 검은 색 테두리가있는 WPF 단추 스타일을 지정하려고합니다.WPF 단추를 스타일링 할 때 이상한 "테두리"를 제거 할 수 없습니다.

<Style x:Key="MyBlackButton" TargetType="{x:Type Button}"> 
    <Setter Property="Background" Value="#FF282828"/> 
    <Setter Property="Foreground" Value="White"/> 
    <Setter Property="FontSize" Value="16"/> 
    <Setter Property="FontWeight" Value="Bold"/> 
    <Setter Property="Height" Value="40"/> 
    <Setter Property="OverridesDefaultStyle" Value="true" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type Button}"> 
       <Grid x:Name="ButtonGrid"> 
        <Border CornerRadius="5" BorderBrush="Black" BorderThickness="1" Background="{TemplateBinding Background}"> 
         <Grid Margin="10,0,10,2"> 
          <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0"/> 
         </Grid> 
        </Border> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

<Button Content="My button" Style="{StaticResource MyBlackButton}" /> 

경계가 버튼의 상단과 하단에 제대로 표시되지 않습니다 제외하고 당신이 다음 줌에서 볼 수 있듯이이 거의, 좋아 보인다 : 온라인으로 여러 예제를 따라 나는 다음과 같은 스타일을 함께했다 실제 버튼 :

enter image description here

내가 어떤 변화가 있었다 있는지 확인하기 위해 더 두꺼운 테두리를 추가하여 문제를 분리하려고합니다. 당신이 다음 사진에서 볼 수 있듯이 버튼 내부의 "경계"의 종류가있다 : 얇은 테두리 그래서

enter image description here

, 경계 버튼의 상단과 하단에 흐리게 보이고,와 두꺼운 국경이 보이고 내 국경이 보입니다. (희미한 경계선 위에 보이면 흐리게 보이게됩니다).

여기에 무슨 일이 일어나고 있습니까? 왜 버튼 주위에 예쁜 테두리를 만들 수 없습니까?

+0

'UseLayoutRounding = "참"'&&'SnapsToDevicePixels = "True"로' – dymanoid

+0

그 두 가지 속성을 추가 스타일에 (세터로서) 도움이되었지만 완전히는 아니 었습니다. 이 이미지를 보면 위쪽 테두리가 여전히 검은 선이 아니라는 것을 알 수 있습니다. http://i.imgur.com/KdoMMur.png – GTHvidsten

답변

0

이 문제를 일으키는 것은 앤티 앨리어싱입니다.

에 한번 당신의 버튼을

RenderOptions.EdgeMode="Aliased" 

설정.

+0

둥근 모서리의 모서리가 들쭉날쭉 해지지 않습니까? (지금 당장 테스트 할 수 없음) – GTHvidsten

+0

예! 확대 할 때 완벽하게 보이지 않는 하나의 앤티 앨리어스가 적용된 매끄러운 보더를 선택하거나 확대 할 때 완벽하게 보이는 별칭 테두리는 일반적으로 더 들쭉날쭉하게 보입니다. 나는 네가 두 가지 방법을 모두 가질 수 있다고 생각하지 않는다. 개인적으로 게시 한 예는 정상적인 확대/축소 수준에서 문제가없는 것으로 보입니다. 어두운 회색 색상을 사용하는 것은 어렵지만, 예를 들어 배경을 빨간색으로 설정하면 검정색 1 픽셀 경계선이 잘 보입니다. –

0

스타일을 시도 = "{정적 리소스 {X : 정적 ToolBar.ButtonStyleKey}}">

+0

어떤 요소에 있습니까? – GTHvidsten