ResourceDictionary не используется в качестве стиля кнопки - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь использовать ResourceDictionary для настройки стиля для кнопки

 <Window.Resources>
        <vieModel:MainWindowViewModel x:Key="MainViewModel"/>
        <ResourceDictionary x:Key="ButtonStyle"> //If I don't use key it gives error
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="GlassButton.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
     </Window.Resources>

и используя его как

<Button Style="{DynamicResource ButtonStyle}"/>

Теперь, когда я делаю это, он жалуется, что ResourceDictionary не может быть применен к стилю. Когда я использую «GlassButton», как определено в GlassButton.xaml, он говорит, что GlassButton не может быть разрешен.

когда я использую его как

<Button Style="{StaticResource ButtonStyle}"/>

или используйте GlassButton в обоих случаях, либо он жалуется, либо не работает.

GlassButton.xaml выглядит следующим образом, и прекрасно компилируется

 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:local="clr-namespace:Citations">

<Style x:Key="GlassButton" TargetType="{x:Type Button}">
    <Setter Property="FontSize" Value="42" />
    <Setter Property="Foreground" Value="White" />
    <Setter Property="Template">

Я беру этот пример из здесь или здесь оба используют один и тот же подход использования ResourceDictionary. Я делаю, как показано, но это все еще не работает. Нужен ли конвертер для этого? или я что-то не так делаю?

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Я должен использовать его следующим образом

<Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="GlassButton.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <vieModel:MainWindowViewModel x:Key="MainViewModel"/>
        </ResourceDictionary>
    </Window.Resources>

Это сработало

0 голосов
/ 15 марта 2019

Следующее сработало для меня.Убедитесь, что путь к GlassButton.xaml правильный.Если вы поместите его в папку типа «Стили», вам нужно будет использовать Source="Styles/GlassButton.xaml".

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="GlassButton.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>
<Grid>
    <Button Style="{DynamicResource GlassButton}"
            Content="Button Content"/>        
</Grid>   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...