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

Making all images be of the same size and margin

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

只需将样式放入面板的资源中,它将应用于面板内该类型的所有项目。

例如:

<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 个单位。

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

尝试在资源中添加样式。

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