创建了一个继承自Control的自定义控件,在Themes\Generic.xaml文件中,可以引用其它资源吗?
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WPF熊俊2">
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" BorderBrush="Red" BorderThickness="2">
<ContentPresenter x:Name="contentPresenter" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type local:MyButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:MyButton}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBox />
<Button Grid.Row="1" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>MyButton是自定义的控件,另外,还放了一个Button的样式(边框为红色),在MyButton的样式中有一个Button,但最后的效果是MyButton的边框并不是红色,可见它并没有引用上面那个Button样式。
但是如果给上面的Button使用Key属性,在下面再引用Key,结果就有效果了
请问,这是什么原因呢?反正我测试出来的结果就是这样的
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WPF熊俊2">
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" BorderBrush="Red" BorderThickness="2">
<ContentPresenter x:Name="contentPresenter" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type local:MyButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:MyButton}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBox />
<Button Grid.Row="1" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>MyButton是自定义的控件,另外,还放了一个Button的样式(边框为红色),在MyButton的样式中有一个Button,但最后的效果是MyButton的边框并不是红色,可见它并没有引用上面那个Button样式。
但是如果给上面的Button使用Key属性,在下面再引用Key,结果就有效果了
请问,这是什么原因呢?反正我测试出来的结果就是这样的
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货