стиль кнопок, основанный на стиле внутри словаря ресурсов - PullRequest
0 голосов
/ 14 января 2020

У меня есть словарь ресурсов с ключом BtnHyperLinkStyle внутри Window.Resources. Я не могу удалить ключ, потому что он говорит, что каждый словарь должен иметь ключ. Проблема в том, что когда я говорю «BasedOn», в теге стиля выдается сообщение о том, что он не может найти стиль с именем «HyperLinkButtonStyle», даже если этот стиль присутствует в StylesButton.xaml. Пожалуйста, помогите. Источник ResourceDictionary указан правильно.

<Window.Resources>
<ResourceDictionary x:Key="BtnHyperLinkStyle">
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="ms-appx:///Presentation.Common/Styles/StylesButton.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>

<Style x:Key="btnFlashButtonEnabledStyle" TargetType="Button" BasedOn="{StaticResource HyperLinkButtonStyle}"> <!--error here. it cant find the key-->
            <Setter Property="Content">
                <Setter.Value>
                    <Viewbox Height="40">
                        <Canvas Width="10240" Height="10240">
                            <Path Data="M6720 7533l0 1427c0,353 -287,640 -640,640l0 0 0 0 0 0c0,176 -216,320 -480,320l-960 0c-264,0 -480,-144 -480,-320l0 0 0 0 0 0c-353,0 -640,-287 -640,-640l0 -1427c139,49 286,78 427,98 382,53 787,49 1173,49 386,0 791,4 1173,-49 141,-20 288,-49 427,-98z" Fill="#252525"/>
                            <Path Data="M5120 320c1624,0 3200,1165 3200,2880 0,1600 -1280,2240 -1280,3200l0 320c0,640 -960,640 -1920,640 -960,0 -1920,0 -1920,-640l0 -320c0,-960 -1280,-1600 -1280,-3200 0,-1711 1572,-2880 3200,-2880zm642 715c-211,-49 -427,-75 -642,-75 -1266,0 -2560,884 -2560,2240 0,303 64,569 164,813 35,86 97,146 184,179 87,32 173,28 256,-14 149,-75 216,-252 153,-407 -73,-177 -117,-363 -117,-571 0,-994 1016,-1600 1920,-1600 164,0 331,20 496,58 146,35 292,-34 359,-168l0 -1c46,-90 47,-187 4,-279 -43,-91 -119,-152 -217,-175z" Fill="#A1C057"/>
                        </Canvas>
                    </Viewbox>
                </Setter.Value>
            </Setter>
        </Style>
</Window.Resources>

Ответы [ 2 ]

1 голос
/ 14 января 2020

Style должен быть частью того же ResourceDictionary, чтобы ссылаться на ресурсы из ResourceDictionary.MergedDictionaries. У вас в основном неправильное дерево объектов. Когда вы используете ResourceDictionary в качестве содержимого свойства Resources, оно должно быть единственным:

<Window.Resources>
  <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
      <ResourceDictionary Source="ms-appx:///Presentation.Common/Styles/StylesButton.xaml"/>
    </ResourceDictionary.MergedDictionaries>

    <Style x:Key="btnFlashButtonEnabledStyle" 
           TargetType="Button" 
           BasedOn="{StaticResource HyperLinkButtonStyle}">
    </Style>
  </ResourceDictionary>
</Window.Resources>
1 голос
/ 14 января 2020

Вы можете попробовать это. Переместите Style в ResourceDictionary и избавьтесь от x:Key.

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="ms-appx:///Presentation.Common/Styles/StylesButton.xaml"/>
        </ResourceDictionary.MergedDictionaries>

        <Style x:Key="btnFlashButtonEnabledStyle" TargetType="Button" BasedOn="{StaticResource HyperLinkButtonStyle}">
            <Setter Property="Content">
                <Setter.Value>
                    <Viewbox Height="40">
                        <Canvas Width="10240" Height="10240">
                            <Path Data="M6720 7533l0 1427c0,353 -287,640 -640,640l0 0 0 0 0 0c0,176 -216,320 -480,320l-960 0c-264,0 -480,-144 -480,-320l0 0 0 0 0 0c-353,0 -640,-287 -640,-640l0 -1427c139,49 286,78 427,98 382,53 787,49 1173,49 386,0 791,4 1173,-49 141,-20 288,-49 427,-98z" Fill="#252525"/>
                            <Path Data="M5120 320c1624,0 3200,1165 3200,2880 0,1600 -1280,2240 -1280,3200l0 320c0,640 -960,640 -1920,640 -960,0 -1920,0 -1920,-640l0 -320c0,-960 -1280,-1600 -1280,-3200 0,-1711 1572,-2880 3200,-2880zm642 715c-211,-49 -427,-75 -642,-75 -1266,0 -2560,884 -2560,2240 0,303 64,569 164,813 35,86 97,146 184,179 87,32 173,28 256,-14 149,-75 216,-252 153,-407 -73,-177 -117,-363 -117,-571 0,-994 1016,-1600 1920,-1600 164,0 331,20 496,58 146,35 292,-34 359,-168l0 -1c46,-90 47,-187 4,-279 -43,-91 -119,-152 -217,-175z" Fill="#A1C057"/>
                        </Canvas>
                    </Viewbox>
                </Setter.Value>
            </Setter>
        </Style>
    </ResourceDictionary>
</Window.Resources>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...