Utworzono obraz w ButtonStyle. Teraz utworzyłem załączoną właściwość, aby ustawić źródło dla tego obrazu. Powinny być proste, ale utknąłem z tym.Jak korzystać z załączonej właściwości w ramach stylu?
To mój skrócony ButtonStyle:
<Style x:Key="ToolBarButtonStyle"
TargetType="Button">
...
<Image x:Name="toolbarImage"
Source="{TemplateBinding PrismExt:ImageSourceAttachable:ImageSource}"
Width="48"
Height="48" />
...
</Style>
I to jest przymocowany definicja nieruchomość należy pamiętać, że nie mam pojęcia jak to naprawić wywołania zwrotnego, ponieważ DependencyProperty wydaje się przycisk zamiast obrazu. Przycisk nie wyświetla mojego obrazu w swoim stylu. To trudne.
namespace SalesContactManagement.Infrastructure.PrismExt
{
public class ImgSourceAttachable
{
public static void SetImgSource(DependencyObject obj, string imgSource)
{
obj.SetValue(ImgSourceProperty, imgSource);
}
public static string GetImgSource(DependencyObject obj)
{
return obj.GetValue(ImgSourceProperty).ToString();
}
// Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ImgSourceProperty =
DependencyProperty.RegisterAttached("ImgSource", typeof(string), typeof(ImgSourceAttachable), new PropertyMetadata(Callback));
private static void Callback(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
//((Button)d).Source = new BitmapImage(new Uri(Application.Current.Host.Source, e.NewValue.ToString()));
}
}
}
ten sposób ustawić źródło obrazu w XAML:
<Button PrismExt:ImgSourceAttachable.ImgSource="./Images/New.png"
Style="{StaticResource ToolBarButtonStyle}" />
jakieś pomysły proszę? Wielkie dzięki,
myślę, odpowiedział, że wkrótce tu chcesz ustawić właściwość przez setter a następnie związać z nim w szablonie? –
Widok reprezentuje cztery przyciski paska narzędzi: http://sl.venuscloud.com/ Chciałbym wprowadzić ścieżkę do ikony dla każdego przycisku z widoku do szablonu poprzez załączoną właściwość. Mam nadzieję, że dzięki temu stanie się to bardziej jasne. Dziękuję – Houman