我定義在一個ResourceDictionary
一個樣式用於與圖像的按鈕:WPF用戶控件:圖像中消失,即使「×:共享=‘假’」
<Style x:Key="BotonIrAInicioStyle" TargetType="Button">
<Setter Property="Margin" Value="0"/>
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}"/>
<Setter Property="Content">
<Setter.Value>
<Image Margin="2" Source="{StaticResource IconoDashboardBlanco}" MaxHeight="20" Stretch="Uniform"
RenderOptions.BitmapScalingMode="HighQuality"/>
</Setter.Value>
</Setter>
</Style>
的圖像源在另一個ResourceDictionary
限定在相同的組件,並標記爲x:Shared="False"
:
<BitmapImage x:Key="IconoDashboardBlanco" x:Shared="False"
UriSource="pack://application:,,,/QualityFramework;component/Images/dashboard64X64.png"/>
由於樣式將在不同的組件一起使用,我用"pack://application:,,,"
符號引用圖像。圖像的Build Action
設置爲Resource (Do not copy to output directory)
。
在主組件我有兩個UserControls
其中顯示具有相同樣式的按鈕:
<Button DockPanel.Dock="Left" Style="{StaticResource BotonIrAInicioStyle}" Click="BotonIrAInicio_Click"/> (Click event has nothing to do with the problem)
問題:
我打開包含與所述圖像和所述圖像的按鈕UserControl A
顯示OK 。然後我打開包含相同按鈕的UserControl B
,圖像正常。我再次打開UserControl A
,圖像消失了。如果我打開UserControl B
,然後UserControl A
,最後一個「擁有」圖像,會發生同樣的情況。
我去了無處不在,所有的解決方案指向x:Shared="False"
,URI notation
和Build Action
......我應用了所有這些問題,問題仍然存在。我也嘗試清潔和重建沒有成功。
我錯過了什麼?謝謝! PS:如果我將兩個按鈕的內容直接設置到圖像上,它就可以正常工作,但整體造型的目的是爲了避免這種情況!
感謝您發佈解決方案,您在評論中絕對正確。 – Hannish 2013-04-28 16:31:30