Pochodzę z tworzenia stron internetowych i WinForms do WPF i być może nie dostałem jeszcze koncepcji. Jestem w stanie zdefiniować ogólne style dla mojej aplikacji w pliku app.xaml. Na przykład zdefiniowałem styl dla wszystkich moich kontrolek wstążki w tym pliku.Mieszanie ogólnych stylów WPF z ResourceDictionary
Potem próbowałem Microsoft Blend i natknąłem się na ResourceDictionary, który jest czymś w rodzaju pliku Resource .resx, który znałem z WinForms.
Ale jak widzę, nie jest możliwe połączenie tych dwóch koncepcji. Na przykład następujące kod xaml nie będzie działać, ponieważ ResourceDictionary musi być jedynym dzieckiem.
<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>
Wygląda na to, że tak naprawdę nie rozumiem tej koncepcji. Może możesz mi pomóc, dlaczego nie jest to możliwe i jak mogę używać ogólnych stylów obok ResourceDictionary.
wiem, ale jak mam to z opisów MSDN, stylów w ResourceDictionary musi mieć klucz. Ale chcę zdefiniować ogólne style bez klucza, więc będą one włączone jako domyślne. –
@ René: Problem polega na tym, że pojawi się błąd, jeśli dodasz styl z tym samym atrybutem TargetType, co styl w scalonym słowniku? –
Nie. Po prostu nie wiedziałem, że Słownik zasobów przyjmuje style tylko za pomocą TargetType bez klucza. Do teraz... –