2015-05-17 3 views
0

Я создаю стиль. Этот стиль создают стрелки для навигацииDynamicResource только для одного привязки?

<Style TargetType="MenuItem" x:Key="navigation_arrow"> 
    <Setter Property="Icon"> 
     <Setter.Value> 
      <DockPanel LastChildFill="True" HorizontalAlignment="Center" VerticalAlignment="Center"> 
       <DockPanel.LayoutTransform> 
        <RotateTransform Angle="0"/> 
       </DockPanel.LayoutTransform> 
       <Grid> 
       <Canvas> 
        <Canvas.RenderTransform> 
         <TransformGroup> 
          <ScaleTransform ScaleX="0.5" ScaleY="0.5"/> 
         </TransformGroup> 
        </Canvas.RenderTransform> 
        <Rectangle Fill="LightBlue" Width="24" Height="6" Canvas.Left="2" Canvas.Top="1" RenderTransformOrigin="0,0"> 
         <Rectangle.RenderTransform> 
          <TransformGroup> 
           <ScaleTransform/> 
           <SkewTransform/> 
           <RotateTransform Angle="30.277"/> 
           <TranslateTransform X="-0.79314" Y="-2.18035"/> 
          </TransformGroup> 
         </Rectangle.RenderTransform> 
        </Rectangle> 
        <Rectangle Fill="LightBlue" Width="44" Height="6" Canvas.Left="2" Canvas.Top="-1" RenderTransformOrigin="0.5,0.5"/> 
        <Polygon Fill="LightBlue" Points="0,12, 12,12, 6,1.6" Canvas.Left="-7" Canvas.Top="-4" RenderTransformOrigin="0,0.5"> 
         <Polygon.RenderTransform> 
          <TransformGroup> 
           <ScaleTransform/> 
           <SkewTransform/> 
           <RotateTransform Angle="-89.8"/> 
           <TranslateTransform X="5.97906" Y="5.99996"/> 
          </TransformGroup> 
         </Polygon.RenderTransform> 

        </Polygon> 
        <Rectangle Fill="LightBlue" Width="24" Height="6" Canvas.Left="-1" Canvas.Top="2" RenderTransformOrigin="1,0"> 
         <Rectangle.RenderTransform> 
          <TransformGroup> 
           <ScaleTransform/> 
           <SkewTransform/> 
           <RotateTransform Angle="-30.277"/> 
           <TranslateTransform X="-4.00853" Y="-14.1804"/> 
          </TransformGroup> 
         </Rectangle.RenderTransform> 
        </Rectangle> 
       </Canvas> 
       </Grid> 
      </DockPanel> 
     </Setter.Value> 
    </Setter> 
</Style> 

Тогда я поставил этот стиль MENUITEM

<MenuItem Style="{DynamicResource navigation_arrow}" Command="NavigationCommands.BrowseBack" /> 
<MenuItem Style="{DynamicResource navigation_arrow}" Command="NavigationCommands.BrowseForward" /> 

И я вижу, что первый MenuItem потерял стиль Hist и стал пустым. Но второй MenuItem применяет этот стиль. Как это исправить?

enter image description here

+1

Ваша ошибка не связана с привязкой DynamicResource. конечно, он должен работать для нескольких предметов. Я думаю, что ваша ошибка где-то в другом месте. Попытайтесь добавить больше MenuItems, перейти на другой стиль DynamicResource и т. Д. Поделитесь им, чтобы мы могли помочь вам с этим! –

+0

отправить изображение, показывающее результат. –

+0

Пожалуйста, добавьте несколько деталей вашего стиля. Как выглядит реальный шаблон управления (без ...)? – gomi42

ответ

1

Единственное решение, которое я вижу сейчас, добавьте x:Shared="False"

<Style x:Key="navigation_arrow" 
      TargetType="Button" 
      x:Shared="False"> 
    ... 

к вашему стилю.

Смежные вопросы