Ich versuche, die Quelle eines Bildsteuerelements innerhalb einer Schaltfläche zu ändern, habe aber Mühe, es zum Laufen zu bringen, ohne dass eine Ausnahme auftritt. Dies ist, was ich bisherProgrammatisches Ändern der Bildquelle innerhalb der Schaltfläche
XAML
<Grid Height="33" VerticalAlignment="Top">
<Button x:Name="btnAttendance" VerticalAlignment="Top" Height="33" BorderBrush="{x:Null}" Background="#FF1D2531" Foreground="#FFB7C0CD" FontSize="14" FontWeight="Bold" Padding="20,1,1,1" HorizontalContentAlignment="Left" Click="button_SidebarClick" Style="{StaticResource STY_SidebarPrimary}" FontFamily="Source Sans Pro Semibold">
<Button.ContentTemplate>
<DataTemplate>
<Grid>
<Image x:Name="imgAttendance" Source="Resources/IMG_LinkFull.png" Height="33" Width="Auto" Margin="23.5,0,0,0" VerticalAlignment="Top" HorizontalAlignment="Stretch" />
<TextBlock Margin="23,0,0,0" Width="Auto" FontFamily="Source Sans Pro Semibold" VerticalAlignment="Center" Foreground="#FF838990"><Run Text="Attendance"/></TextBlock>
</Grid>
</DataTemplate>
</Button.ContentTemplate>
</Button>
</Grid>
C#
ControlTemplate ct = btnAttendance.Template;
Image btnImage = (Image)ct.FindName("imgAttendance", btnAttendance);
btnImage.Source = new BitmapImage(new Uri("Resources/IMG_LinkFull_Active.png", UriKind.RelativeOrAbsolute));
Jede Idee, wo ich falsch gehe? Ich habe versucht, die Bilddatei direkt zu referenzieren, aber das Steuerelement ist nicht sichtbar/zugänglich.
Vielen Dank für Ihre Zeit!
Gibt es einen Grund, warum Sie eine 'ContentTemplate' verwenden anstelle der Platzierung der' Grid' direkt innerhalb der Taste? Auf diese Weise können Sie einfach auf das 'imgAttendance'-Steuerelement von Code-behind verweisen. –
'btnAttendance.Template' gibt Ihnen die' Template' des Buttons, nicht dessen 'ContentTemplate'. Dies sind zwei verschiedene Dinge. – Clemens
Können Sie versuchen, den einfachen Textblock mit Inhalten innerhalb der Vorlage zu laden? Wenn es funktioniert, wird die Bildquelle nicht richtig eingestellt. Bitte ignoriere, wenn du das schon probiert hast. –