Seit der Vorlage Standardschaltfläche haben Border Eigenschaft nicht, Weitere Informationen, die Sie besuchen können: here. Also, wenn Sie einen Rahmen um Schaltfläche wollen, müssen Sie Ihren eigenen Stil zu verwenden, wie:
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" BorderBrush="Transparent" BorderThickness="0" Background="Transparent">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
In obigem Code alle Eigenschaften wie: BorderBrush
, BorderThickness
und Background
hart codiert sind, und Sie können diese Eigenschaft nicht festgelegt von Code dahinter. wenn Sie wollen, so müssen Sie schreiben Stil wie:
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" BorderBrush="{TemplateBinding Property=BorderBrush}" BorderThickness="{TemplateBinding Property=BorderThickness}" Background="{TemplateBinding Property=Background}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
und wenden diese Art wie:
<Grid>
<Button Name="btnNew" Style="{StaticResource ButtonStyle }" Width="200" Height="50" Click="Button_Click" />
</Grid>
Nach dass Sie diese Eigenschaft Border als Ihr Wunsch ändern können, zum Beispiel:
btnNew.Background = Brushes.Black;
btnNew.BorderThickness = new Thickness(4, 5, 7, 9);
btnNew.BorderBrush = Brushes.Red;
Warum Code hinter? –
Die Schaltflächenvorlage legt wahrscheinlich die Randstärke explizit fest. –
Ich denke, der vorgeschlagene Weg könnte sein, diese Eigenschaften an ein Ansichtsmodell zu binden und dann diese verknüpfte korrelierende Eigenschaft zu ändern, anstatt direkt mit dem imperativen Code zu arbeiten. –