2015-09-20 130 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

@Nikita出於某種原因(在撰寫本文時我不知道),該屬性不會影響圖像的外觀。我已經從圖片本身中刪除了這些設置,但該樣式似乎仍然沒有被控件看到。當然,我認爲我做了一些錯誤的事情,儘管試圖遵循與之相關的例子。 –

回答

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> 
相關問題