我曾从事网站开发和WinForms,现在转向WPF,但可能还没有完全掌握其概念。
我可以在app.xaml中为我的应用程序定义通用样式,例如,在该文件中定义了我的所有Ribbon控件的样式。
然后,我尝试了Microsoft Blend,并学到了ResourceDictionary,这是一种类似于WinForms中 .resx 资源文件的资源文件。
但据我所知,这两个概念无法混合使用。例如,以下XAML代码将无法工作,因为ResourceDictionary必须是唯一的子元素。
<Application x:Class="Wpf.MyApplication.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
StartupUri="MyMainWindow.xaml">
<Application.Resources>
<!-- Resources scoped at the Application level should be defined here. -->
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles/RibbonStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
<BitmapImage x:Key="IconDokumentNeu" >Images/NewDocument_32x32.png</BitmapImage>
<SolidColorBrush x:Key="LightGrayBrushKey">WhiteSmoke</SolidColorBrush>
</ResourceDictionary>
<Style TargetType="{x:Type ribbon:RibbonWindow}">
<Setter Property="Icon" Value="../time2_32.png" />
<Setter Property="TextOptions.TextFormattingMode" Value="Display" />
</Style>
</Application.Resources>
</Application>
看起来我没有真正理解这个概念。也许你可以帮助我,为什么这不可能,并且我如何在ResourceDictionary旁边使用通用样式。