使所有图像具有相同的大小和边距

时间:2015-09-20 21:10:08

标签: wpf xaml stackpanel

我注意到我在堆叠面板中有一些图像,并且每个图像都有完全相同的大小,边距,对齐等设置。我不想为风格创建全球资源。是否可以在此特定面板中声明本地样式,并且仅针对图像( 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" />

2 个答案:

答案 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个单位的所有文本框中。

除非您使用单个项目上的设置覆盖样式。也许你这样做?

答案 1 :(得分:1)

尝试在资源中添加样式。

    <Page.Resources>
            <Style TargetType="Image">
                <Setter Property="Width" Value="80"/>
                <Setter Property="Height" Value="80"/>
            </Style>
    </Page.Resources>