WPF:如何在设计器中定义自定义控件的外观?

时间:2011-02-10 16:51:30

标签: c# wpf wpf-controls

所以我喜欢这样的事实:自定义控件的外观可以在generic.xaml中重新定义,所以我想创建一个。但我的问题是,你最初如何设计(使用设计师)寻找自定义控件?与用户控件不同,它没有附加的xaml / designer窗口。那么必须在代码中设计它吗?

1 个答案:

答案 0 :(得分:2)

您创建了一个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设计器中也是如此。