在 WPF 中为整个应用程序设置皮肤的推荐方法是什么?

发布于 2024-07-05 03:11:14 字数 141 浏览 13 评论 0原文

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

我可以使用什么来完成此类功能? 是否有任何好的资源或教程可以展示如何完成此特定任务?

I want my WPF application to be skinnable, by applying a certain XAML template, and the changes to be application wide, even for dynamic controls or controls that aren't even in the visual/logical tree.

What can I use to accomplish this type of functionality? Are there any good resources or tutorials that show how this specific task can be done?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

┾廆蒐ゝ 2024-07-12 03:11:14

替换资源会起作用,但我发现“结构蒙皮”更强大! 在 CodeProject 上了解更多相关信息...

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

The replacing of resource will work but I found "structural skinning" to be more powerfull! Read more about it on CodeProject...

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

要走干脆点 2024-07-12 03:11:14

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

示例:

 <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>

此处的 Style 键为 x:Key="{x:Type Button}",因此该样式将应用于按钮类型的所有控件,而无需控件将 Style 属性声明为静态或动态资源。

I have found the way to apply generic templates to all controls without using template keys. The solution is to use the type of the control as the Style key.

Example:

 <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>

here the Style key is x:Key="{x:Type Button}", so the style will be applied to all controls of type button without the control declaring the Style property to be a static or dynamic resource.

农村范ル 2024-07-12 03:11:14

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

请参阅http://www.nablasoft.com/alkampfer/index.php/2008/05/22/simple-skinnable-and-theme-management-in-wpf-user-interface/ 了解基本信息方法

The basic approach to take is using resources all through your application and dynamically replacing the resources at runtime.

See http://www.nablasoft.com/alkampfer/index.php/2008/05/22/simple-skinnable-and-theme-management-in-wpf-user-interface/ for the basic approach

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文