我试图做一个WPF的风格,让我: 1.基替代的风格掀起了基本样式 2.具备基本样式是每一个控件使用时没有默认风格被应用。WPF的默认样式和风格的基础
例如,我有代码,以使样式按钮...
<!--Base Button-->
<Style TargetType="Button" x:Key="BaseButton">
<Setter Property="Width" Value="auto"/>
<Setter Property="MaxWidth" Value="100"/>
<Setter Property="Height" Value="auto"/>
<Setter Property="MaxHeight" Value="50"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Cursor" Value="Hand"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Opacity" Value=".85"/>
</Trigger>
</Style.Triggers>
</Style>
<!--Apply Base to any Button without a style-->
<Style TargetType="Button" BasedOn="{StaticResource BaseButton}"/>
,这里是为特定的按钮样式...
<Style TargetType="Button" x:Key="DeleteBtn" BasedOn="{StaticResource BaseButton}">
<Setter Property="Width" Value="100"/>
<Setter Property="Height" Value="35"/>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="(some url)" Height="16" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Label Content="Delete" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
正如你所看到的,我希望能够将“DeleteBtn”样式基于基础,但是也可以将基础设置为屏幕上放置的每个没有特定样式集的按钮的默认基础。目前这只适用于按钮,没有其他控制。上面的例子工作,但我似乎无法做标签,文本框等相同的东西。任何想法或输入将不胜感激:)
这是一个不起作用的示例..
<!--Base Icon-->
<Style TargetType="Image" x:Key="BaseIcon">
<Setter Property="VerticalAlignment" Value="Top"/>
<Setter Property="HorizontalAlignment" Value="Right"/>
</Style>
<!--Apply Base to any Icon without a style-->
<Style TargetType="Image" BasedOn="{DynamicResource BaseIcon}"/>
它给出了一个错误:'DynamicResourceExtension'不能在'Style'类型的'BasedOn'属性上设置。 'DynamicResourceExtension'只能在DependencyObject的DependencyProperty上设置。
究竟哪个控件?标签包含其他控件,其中的内容在样式化时必须解决。尝试使用TextBlock而不是Label作为其原子。 – BlueM
现在,图像,文本块,标签,组合框,复选框......它继续运行并不起作用。我宁愿不发布我的所有代码,所以我在上面包含了一个例子。 – Kapow36
它可以帮助启用WPF跟踪http://msdn.microsoft.com/en-us/library/dd409960.aspx – BlueM