角を丸くして黒い枠線にするように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}" />
これはほとんどあなたが次のズームから見ることができるように国境は、ボタンの上部と下部に正しく表示されないことを除いて、よさそうです実際のボタン:
私はすべての変更があったかどうかを確認するために非常に厚い境界線を追加して問題を特定しようとします。あなたは次の画像で見ることができるようにボタン内部の「国境」の並べ替えがあります:
薄手なのでボーダーで、境界線はボタンの上部と下部にぼやけて見える、として太い枠線、内側の枠線が表示されます(薄い枠線の上に表示され、ぼかして表示されます)。
ここでは何が起こっていますか?ボタンの周りにかなりの境界線ができないのはなぜですか?
'UseLayoutRounding = "TRUE"' && 'SnapsToDevicePixels = "TRUE"' – dymanoid
は、これら2つのプロパティを追加します(セッターとしての)スタイルにはかなり助けられましたが、完全にはそうではありませんでした。この画像を見ると、上の境界線がまだ黒線ではないことがわかります。http://i.imgur.com/KdoMMur.png – GTHvidsten