2009-09-30 10 views
9

Tôi đang sử dụng RibbonControl từ bộ công cụ WPF. Nó có các chủ đề Office Blue, Black và Silver. Nhưng chủ đề không áp dụng cho các điều khiển trong cửa sổ. Có giải pháp nào cho điều đó không?Áp dụng các chủ đề Office 2007 cho ứng dụng WPF

Tôi aplying chủ đề như

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

Nhưng các điều khiển là nút như, hộp không được phạt toàn bộ.

Trả lời

3

Bạn cần từ điển tài nguyên riêng để cung cấp kiểu WPF cho các điều khiển khác nhau. Tôi tạo của riêng mình, bằng cách lấy mẫu màu sắc trên các ứng dụng khác nhau. Nó thực sự không phải là rất khó để làm, và nó olny đã cho tôi một vài giờ.

Nếu bạn đang tìm kiếm giải pháp nhanh chóng và dễ dàng, hãy thử WPF Themes. Chủ đề của Office Blue trông khá giống với màu xanh của Office 2007.

+0

Bạn xứng đáng đúng. – Sauron

+0

Tôi có một câu hỏi liên tục: Sau khi sử dụng một chủ đề WPF, làm thế nào chúng ta có thể thiết lập lại chủ đề cho chủ đề hệ thống/OS? –

0

Bạn đang cố gắng áp dụng chủ đề như thế nào? Bạn đang áp dụng nó trong app.xaml của bạn (một cái gì đó như dưới đây)?

<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

Tôi đã cố gắng sử dụng lại các tài nguyên được xác định trong RibbonControlsLibrary.dll để tôi có thể áp dụng kiểu dáng tương tự cho phần còn lại của ứng dụng. Sau giờ tìm kiếm và không quan trọng, đây là những gì tôi nhận ra:

<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}}" /> 

Tôi có ý tưởng bằng cách nhìn vào những gì các phím trong từ điển tài nguyên đã và nhìn vào bài viết này: How do I get the actual resource from a ComponentResourceKey?

Phương pháp này cho phép tôi để tạo ra các phong cách khác mà sẽ có cùng một cái nhìn và cảm nhận như da ribbon được lựa chọn. Thay đổi làn da sẽ khôi phục các khía cạnh khác của ứng dụng, như các nút, v.v ...