2017-02-20 46 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 = "TRUE"' && 'SnapsToDevicePixels = "TRUE"' – dymanoid

+0

は、これら2つのプロパティを追加します(セッターとしての)スタイルにはかなり助けられましたが、完全にはそうではありませんでした。この画像を見ると、上の境界線がまだ黒線ではないことがわかります。http://i.imgur.com/KdoMMur.png – GTHvidsten

答えて

0

これを引き起こしているのはアンチエイリアスです。

はあなたのボタンを

RenderOptions.EdgeMode="Aliased" 

を設定してみてください。

+0

丸い角のエッジがギザギザにならないでしょうか? (これは現在テストできません) – GTHvidsten

+0

はい! ズームインしたときに完全に見えない1つのアンチエイリアスの滑らかな枠線、またはズームインすると完璧な枠線の枠線を選択する必要がありますが、一般的にはギザギザのように見えます。私はあなたがそれを両方の方法で持てるとは思わない。 個人的には、元の投稿の例が通常のズームレベルでうまく見えると思います。暗い灰色を使用するのは難しいですが、たとえば背景を赤に設定すると、黒い1pxの境界線がきれいに見えます。 –

0

この

スタイルを試し= "{StaticResource {X:静的ToolBar.ButtonStyleKey}}">

+0

どの要素ですか? – GTHvidsten

関連する問題