【发布时间】:2011-02-11 01:01:21
【问题描述】:
所以我喜欢可以在 generic.xaml 中重新定义自定义控件的外观这一事实,所以我想创建一个。但我的问题是,您最初如何设计(使用设计器)自定义控件的外观?与用户控件不同,它没有附加的 xaml/设计器窗口。所以必须用代码来设计吗?
【问题讨论】:
-
Expression Blend 为您提供了一个设计表面,可用于...
标签: c# wpf wpf-controls
所以我喜欢可以在 generic.xaml 中重新定义自定义控件的外观这一事实,所以我想创建一个。但我的问题是,您最初如何设计(使用设计器)自定义控件的外观?与用户控件不同,它没有附加的 xaml/设计器窗口。所以必须用代码来设计吗?
【问题讨论】:
标签: c# wpf wpf-controls
您创建一个ResourceDictionary XAML 文件,在该文件中为控件定义CustomTemplate/Style,然后将所有此类字典合并到Generic.xaml 字典中。
例如,定义一个控件样式:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid x:Name="RootElement" >
<ContentPresenter
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Foreground="{TemplateBinding Foreground}"
VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
在你的Generic.xaml:
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MyButtonStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
结果应该是 Button 类型的控件现在以指定的样式呈现,即使在 IDE 设计器中也是如此。
【讨论】: