2015-09-20 3 views
0

Я заметил, что у меня есть несколько изображений в панели стека, и каждый из них имеет точно того же размера, поля, выравнивания и т. Д. Я не хочу создавать глобальный ресурс для стиля. Возможно ли иметь местный стиль, объявленный в этой конкретной панели, и только для изображений (TargetType достаточно в этом случае)?Выполнение всех изображений одного размера и поля

Мне хотелось бы что-то рядом с this solution, за исключением того, что я не использую ресурс глобального стиля.

<StackPanel.Resources> 
    <Style TargetType="Image"> 
    <Setter Property="Width" Value="24" /> 
    ... 
    </Style> 
</StackPanel.Resources> 
<Image Source="{StaticResource Poof}" 
     VerticalAlignment="Top" 
     ... 
     Margin="20,20,20,0" /> 
+0

в вашем коде, стиль не глобальный, а уровень управления (stackPanel), какое улучшение вы ищете? –

+0

@ Никита По какой-то причине (не знаю, что я на момент написания) это свойство не влияет на внешний вид изображения. Я удалил настройки из самого изображения, но стиль по-прежнему не отображается элементом управления. Естественно, я предположил, что сделал что-то не так, хотя пытался следовать приведенному примеру. –

ответ

2

Просто поместите стиль в ресурсы для панели, и он применим ко всем элементам этого типа внутри панели.

Например:

<StackPanel> 
    <StackPanel.Resources> 
     <Style TargetType="{x:Type TextBox}"> 
      <Setter Property="Width" Value="200" /> 
     </Style> 
    </StackPanel.Resources> 
    <TextBox Margin="20" /> 
    <TextBox Margin="20" /> 
    <TextBox Margin="20" /> 
    <TextBox Margin="20" /> 
</StackPanel> 

Результаты всех текстовых полей, имеющих ширину 200 единиц.

Если вы не переопределите стиль с настройкой отдельных элементов. Возможно, вы это делаете?

+0

Так я и думал. Но кажется, что он просто не действует. Возможно, я что-то упустил ... Пожалуйста, см. Дополнение к моему вопросу через минуту. –

+1

@ KonradViltersten Я отредактировал свой ответ, чтобы включить код, который я только что проверил и знаю, чтобы работать. Основываясь на том, что вы предоставили, я могу только догадываться о том, что может быть проблемой, но концепция работает. – user3690202

1

Попробуйте добавить стиль внутри ресурсов.

<Page.Resources> 
      <Style TargetType="Image"> 
       <Setter Property="Width" Value="80"/> 
       <Setter Property="Height" Value="80"/> 
      </Style> 
    </Page.Resources> 
Смежные вопросы