I zdefiniowany styl w ResourceDictionary
na przycisk z obrazka:WPF UserControls: Obraz znika nawet z „x: Shared =«false»”
<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>
Obraz źródłowy jest zdefiniowana w innym ResourceDictionary
w sam montaż i oznaczone jako x:Shared="False"
:
<BitmapImage x:Key="IconoDashboardBlanco" x:Shared="False"
UriSource="pack://application:,,,/QualityFramework;component/Images/dashboard64X64.png"/>
Ponieważ styl zostaną wykorzystane w innym zespole, użyłem notacji "pack://application:,,,"
odwołać obraz. Numer Build Action
dla obrazu jest ustawiony na Resource (Do not copy to output directory)
.
W głównym zespole Mam dwie UserControls
który wyświetlany przycisk z identycznym stylu:
<Button DockPanel.Dock="Left" Style="{StaticResource BotonIrAInicioStyle}" Click="BotonIrAInicio_Click"/> (Click event has nothing to do with the problem)
PROBLEM:
otworzyć UserControl A
zawierający przycisk z obrazem, a obraz wyświetlany jest ok . Następnie otwieram UserControl B
zawierający identyczny przycisk, obraz ok. Ponownie otwieram UserControl A
, a obraz zniknął. Zdarza się to samo, gdy otwieram UserControl B
, a następnie UserControl A
, ostatni "jest właścicielem" obrazu.
Poszedłem wszędzie, a wszystkie rozwiązania wskazują na x:Shared="False"
, URI notation
i Build Action
... Zastosowałem je wszystkie i problem nadal się pojawia. Próbowałem też czyścić i odbudowywać bez powodzenia.
Czego mi brakuje? Dzięki!
PS: jeśli ustawię zawartość obu przycisków bezpośrednio na obrazie, działa dobrze, ale cały styl stylizacji polega na uniknięciu tego!
Dziękujemy za przesłanie rozwiązania, masz absolutną rację w swoich komentarzach. – Hannish