WPF功能区更改主题

时间:2011-06-27 17:16:52

标签: c# wpf wpf-controls

您好我正在创建我的第一个使用Ribbons的WPF应用程序。我遇到的问题是我无法改变色带的主题。我想使用Office 2007 Black主题。我到处寻找,我发现大致相同的例子,我尝试从头开始编写它,复制粘贴以及一切,但是当我尝试运行应用程序时它仍然会抛出异常。

异常

Set property 'System.Windows.ResourceDictionary.Source' threw an exception.' Line number '11' and line position '18'.

内部异常

{"Cannot locate resource 'themes/office2007black.xaml'."}

Xaml代码

<r:RibbonWindow x:Class="DtcInvoicer.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
    Title="Dtc Invoicer"
    Width="1000" Height="650" WindowStartupLocation="CenterScreen">

<r:RibbonWindow.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/RibbonControlsLibrary;component/Themes/Office2007Black.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</r:RibbonWindow.Resources>

<Grid x:Name="LayoutRoot">
    <r:Ribbon x:Name="TopMenuRibbon" Title="First Ribbon">
        <r:RibbonTab Header="Home" />
        <r:RibbonTab Header="Company" />
        <r:RibbonTab Header="Employees" />
        <r:RibbonTab Header="Receivables" />
        <r:RibbonTab Header="Payables" />
        <r:RibbonTab Header="Inventory" />
        <r:RibbonTab Header="Settings" />
    </r:Ribbon>
</Grid>
</r:RibbonWindow>

任何人都知道为什么会发生这种情况? RibbonControlsLibrary在我的参考文献中,一切正常,丝带出现在蓝色主题中,直到我尝试切换到黑色或银色,然后我得到例外。

1 个答案:

答案 0 :(得分:1)

特定于主题的资源保存在具有特定文件名的资源字典中。 这些文件必须位于名为Themes的文件夹中,该文件夹是包含控件的文件夹的子文件夹

有关详细信息,请参阅this MSDN article