在WPF中构建自定义主题或使用标准主题

7

我希望成为一名专业的.NET开发人员(希望如此),我开始研究Windows Presentation Foundation (WPF)。通过观看多个视频教程,我发现GUI设计是一项艰巨的任务。需要在每个元素的每种情况下指定每种颜色,以适应每种平台,这似乎有些过于繁琐。在设计方面,如何使这个过程更简单、更通用?是否有任何模板可以起步,或者说在设计变得吸引人之前需要指定几百行XAML代码?

考虑以下代码块...

<Style TargetType="{x:Type Button}">
    <Setter Property="Background" Value="LightGreen" />
    <Setter Property="Foreground" Value="DarkGreen" />
</Style>

在这里,悬停和按下按钮样式的属性被省略了,需要使用额外的XAML行来实现开发人员想要的效果。

是否有一个简单的XAML编辑器可以提高生产力?如果没有,只能深入研究XAML并开始构建样式以供以后项目使用。

4个回答

13

设计自己的主题很棒,但需要很多专业知识和时间。从我的角度来看,如果已经有很多在线可用的主题,投资于设计自己的主题不是一个好主意。你可以选择一个适合你的主题,并根据需求进行修改。

我通常参考以下链接获取主题:

WPF 主题 -

http://wpfthemes.codeplex.com/

http://wpf.codeplex.com/wikipage?title=WPF%20Themes&ProjectName=wpf

WPF 主题选择器

http://wpfthemeselector.codeplex.com/

带有 21 种主题的 Wpf 项目

https://marketplace.visualstudio.com/items?itemName=AliAlikhani.SahaWpfTheme2012

如果需要更多选项,可以在这里购买:

http://www.xamltemplates.net/wpf-themes/


谢谢这些很棒的链接。特别是wpfstyles.com看起来非常不错 - 我今天稍后会试一下。 - Benny Skogberg
该链接http://www.wpfstyles.com/Default.aspx已经失效。是否有可能将内容托管在其他地方? - Roger Stewart
很不幸,wpfstyles.com网站已经停止运营了 :( 我希望那里的主题已经备份在其他地方了! - akjoshi

2

没有必要创建样式,你可以直接使用默认样式。考虑这个简单的消息框样式窗口:

<Window x:Class="MyProject.Test"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        Title="Test" Height="217" Width="298">
    <StackPanel Orientation="Vertical">
       <Label>Here is the Message.</Label>
       <StackPanel Orientation="Horizontal">
           <Button>OK</Button>
           <Button>Cancel</Button>
       </StackPanel>
    </StackPanel>
</Window>

如果你真的需要重新设计控件,我会挑选其中一些进行设计。否则,我认为创建自定义样式是一个相当大的任务。


1
我很害怕这个 :) - 但是,实际上为几乎每个信息系统中的无聊标准样式做些什么会很好。给我一个月 - 我将完成三种不同的样式,用于像Windows Dynamics AX、SAP甚至BaaN这样的信息系统。对我来说,使用正确的颜色编码非常重要,使应用程序更有用(和有趣)可用。考虑到用户,我认为这非常重要。谢谢你的回答,让我更了解了! - Benny Skogberg

2

创建自定义样式是一个非常庞大的任务,但如果您决定这是必要的(不是必须的),您可以使用Expression Blend来加快该过程。


我之前在Expression Blend上看到过这些词,但从未完全理解其背景。能够像balsamiq.com一样制作简单的草图是一个非常好的功能!谢谢提供链接,我会立即去MSDNAA(学术联盟)试用一下!敬礼 - - Benny Skogberg

2
“Reuxables”提供了几个免费的主题供您尝试。我们刚刚购买了他们的一个非免费主题,它非常容易使用,您只需要在app.xaml中添加一个引用,就可以将您的应用程序转换成该主题。而且很容易进行个性化调整。”

谢谢提供链接!看起来非常不错。我认为实际购买主题可能是个好主意,因为你可以用公平的价格得到一个起点。 - Benny Skogberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接