代码之家  ›  专栏  ›  技术社区  ›  Pop Catalin

在WPF中,建议采用什么方法对整个应用程序进行外观设计?

  •  23
  • Pop Catalin  · 技术社区  · 16 年前

    我希望通过应用特定的XAML模板,WPF应用程序可以剥皮,并且更改可以在应用程序范围内进行,即使对于不在可视/逻辑树中的动态控件或控件也是如此。

    我可以使用什么来完成这种类型的功能?有没有好的资源或教程可以说明如何完成这个特定的任务?

    3 回复  |  直到 7 年前
        1
  •  10
  •   Maurice    16 年前

    要采取的基本方法是在整个应用程序中使用资源,并在运行时动态替换资源。

    http://www.nablasoft.com/alkampfer/index.php/2008/05/22/simple-skinnable-and-theme-management-in-wpf-user-interface/ 对于基本方法

        2
  •  4
  •   rudigrobler    16 年前

    资源的替换将起作用,但我发现“结构性剥皮”更强大!在codeproject上阅读更多关于它的信息…

    http://www.codeproject.com/KB/WPF/podder1.aspx

        3
  •  2
  •   Pop Catalin    16 年前

    我找到了不使用模板键将通用模板应用于所有控件的方法。解决方案是使用控件的类型作为样式键。

    例子:

     <Application.Resources>
        <Style x:Key="{x:Type Button}" TargetType="{x:Type Button}">
            <Setter Property="Button.Background" Value="CornflowerBlue"/>
            <Setter Property="Button.Template">
                <Setter.Value>
                    <ControlTemplate x:Name="MyTemplate">
                        ...
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Application.Resources>
    

    这里的样式键是x:key=“x:type button”,因此样式将应用于类型button的所有控件,而不需要控件将Style属性声明为静态或动态资源。