2010-12-13 2 views

Antwort

0

Jede Control innerhalb in Silvelright hat eine IsEnabled Eigenschaft. Dies kann verwendet werden, um einen aktivierten/deaktivierten Zustand zu definieren, der dann in XAML als solcher gestylt werden kann (die Ebene über der Schaltfläche, um anzuzeigen, dass sie zum Beispiel deaktiviert ist). Image stammt jedoch nicht von Control und besitzt daher nicht die IsEnabled Eigenschaft.

Sie könnten entweder eine benutzerdefinierte Image Klasse erstellen, die für die Anwendung des genannten Verhaltens unter Verwendung der VisualStateManager sorgen wird.

Sie können auch eine benutzerdefinierte UserControl erstellen, die das gesuchte Verhalten einkapseln kann; Verwenden der zwei Bilder und Umschalten zwischen diesen basierend auf einer exponierten Eigenschaft; dh ... IsEnabled.

Sie könnten auch die Image.Source Route gehen, wie Sie in JS getan haben, die das angezeigte Bild ändern wird; die Logik woanders hinschieben und dann die Quelle im Code hinterher ändern.

0

Alternativ können Sie das Bild in einem Hyperlink-Steuerelement wickeln (vorausgesetzt, Sie benötigen ein Click-Ereignis zu behandeln), und legen Sie die IsEnabled Eigenschaft Hyperlink:

<HyperlinkButton x:Name="btnSave" Click="btnSave_Click" IsEnabled="False"> 
    <Image Source="/YourNamespace;component/Images/Icons/Save.png" Stretch="Fill"/> 
</HyperlinkButton> 
Verwandte Themen