2009-09-30 10 views
9

WPFツールキットのRibbonControlを使用しています。オフィスブルー、ブラック、シルバーのテーマがあります。しかし、テーマはウィンドウ内のコントロールには適用されません。そのための解決策はありますか?Office 2007テーマをWPFアプリケーションに適用する

私は

<ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="/RibbonControlsLibrary;component/Themes/Office2007Black.xaml"/> 
</ResourceDictionary.MergedDictionaries> 

のようなテーマをaplyingています。しかしコントロールがボタンのように、テキストボックスがchagedされていないされています。

答えて

3

さまざまなコントロールにWPFスタイルを提供するには、別のリソースディクショナリが必要です。私は、さまざまなアプリで色をサンプリングすることで自分自身を作成し​​ました。それは本当にやりにくいことではありません、そして、それは私に数時間かかりました。

クイックで簡単な解決策をお探しの場合はWPF Themesをお試しください。 Bureau Blueのテーマは、Office 2007の青とよく似ています。

+0

Youyはまったく正しいです。 – Sauron

+0

私は引き続き質問します:WPFテーマを使用した後、テーマをシステム/ OSテーマにリセットするにはどうしたらいいですか? –

0

どのようにテーマを適用しようとしていますか?あなたはあなたのapp.xamlにそれを適用していますか(以下のようなもの)?

<ResourceDictionary.MergedDictionaries> 
    <ResourceDictionary Source="/PresentationFramework.Aero,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35,ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" /> 
    <ResourceDictionary Source="/WPFToolkit;V3.5.31016.1;component/DataGrid/Themes/Aero.NormalColor.xaml" /> 
</ResourceDictionary.MergedDictionaries> 
0

RibbonControlsLibrary.dllで定義されているリソースを再利用しようとしているため、他のアプリケーションに同様のスタイルを適用できます。検索といじるの時間後に、これは私が実現するものである:

<Rectangle Stroke="Black" StrokeThickness="2" RadiusX="6" RadiusY="6" HorizontalAlignment="Stretch" Width="Auto" Grid.RowSpan="3" Grid.ColumnSpan="3" 
Fill="{DynamicResource {x:Static r:RibbonSkinResources.RibbonBackgroundBrushKey}}" /> 

私はリソースディクショナリのキーは何であったかを見て、この記事を見て、アイデアを得た: How do I get the actual resource from a ComponentResourceKey?

このメソッドは、ことができます私は選択されたリボンスキンと同じルックアンドフィールを持つ他のスタイルを作成します。スキンを変更すると、ボタンのようなアプリケーションの他の側面が再現されます。

関連する問題