WPFアプリケーションのOffice 2007のテーマを適用します。
-
19-09-2019 - |
質問
私は、WPFのツールキットからRibbonControlを使用しています。これは、Officeブルー、ブラックとシルバーのテーマを持っています。しかし、テーマは、ウィンドウ内のコントロールのために適用されていません。そのためにどんな解決策はありますか?
私は
のようなテーマをaplyingています <ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/RibbonControlsLibrary;component/Themes/Office2007Black.xaml"/>
</ResourceDictionary.MergedDictionaries>
しかし、コントロールはボタンのように、テキストボックスがchagedされていないされます。
解決
あなたは、さまざまなコントロールにWPFのスタイルを提供するために、別のリソースディクショナリを必要としています。私は様々なアプリに色をサンプリングすることで、私自身のを作成しました。それは本当にやることは非常に難しいことではありません、それはolny私に数時間を要します。
あなたが迅速かつ簡単な解決策を探している場合は、 WPFテーマはを。事務局ブルーのテーマはかなりOffice 2007の青のように見えます。
他のヒント
どのようにテーマを適用しようとしていますか?あなたは(以下のようなもの)あなたの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>
私は自分のアプリケーションの残りの部分と同様のスタイルを適用することができるように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}}" />
私は、リソースディクショナリ内のキーは何であったかを見て、この記事を見て、アイデアを得ました: どのように私はComponentResourceKeyから実際のリソースを得るのですか?>
この方法では、私は同じ顔をしていると、選択したリボンのスキンとして感じることが他のスタイルを作成することができます。スキンを変更すると、
...ボタンなどのように、アプリケーションの他の側面のスタイルを変更します