下面的代码将创建两个按钮,但风格将只应用于第二我知道我可以使用模板,而我想知道为什么这个设置不起作用?为什么内容设置器仅适用于最后一个控件?
<Window x:Class="WpfApplication9.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Content">
<Setter.Value>
<Grid>
<TextBlock Text="help"></TextBlock>
</Grid>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Grid.Row="1" Grid.Column="0"></Button>
<Button Grid.Row="1" Grid.Column="1"></Button>
</Grid>
使用模板或将共享属性设置为false会更好吗?或者这是否具有相同的性能影响? – Bob 2014-10-20 20:29:42
这只是另一种做事的方式,但我个人可以选择模板。如果你可以避免它,你不应该使用视觉样式设置器 – dkozl 2014-10-20 20:43:22
同意,如果你想坚持WPF的推荐做法,使用模板。在将近十年的WPF开发中,我从未发现有必要使用'x:Shared',并且这条路线基本上是一种处理规则和最佳实践的方式。这就是说,这是一个有用的事情要知道。 – 2014-10-20 21:00:18