1
我目前正在使用WPF UI編寫程序,並且我有一個關閉或取消的按鈕,具體取決於頁面是否有任何更改。爲了實現這一點,我想在按鈕上使用一個觸發器(包裝在一個樣式中),這樣當依賴屬性HasChanges爲true時,按鈕將從「關閉」更改爲「取消」。到目前爲止,我的程序顯示「Close」作爲按鈕的文本,但是當我的依賴屬性HasChanges變爲true時沒有任何反應。 WPF頁面正在使用VB.Net編寫,而不是XAML。WPF:向按鈕添加觸發器
到目前爲止,我有:
Private Sub SetUpMyButton()
Me.MyButton.Style = Me.GetMyButtonStyle()
End Sub
Private Function GetMyButtonStyle() As Style
Dim hasChangesTrigger as New Trigger
hasChangesTrigger.Property = CustomControl.HasChangesProperty
hasChangesTrigger.Value = True
hasChangesTrigger.Setters.Add(New Setter(Button.ContentProperty, "Cancel"))
Dim hasChangesStyle as New Style
hasChangesStyle.TargetType = GetType(Button)
hasChangesStyle.Setters.Add(New Setter(Button.ContentProperty, "Close"))
hasChangesStyle.Triggers.Add(hasChangesTrigger)
hasChangesStyle.Seal()
Return hasChangesStyle
End Function
任何幫助是極大的讚賞。
我不確定他爲什麼選擇在代碼中執行此操作,但您可能並不知道許多僱主堅持使用XAML代碼,特別是在創建commericl控件類庫時。 這是因爲控件的大部分價值在於它的控件模板和樣式,如果留在XAML中,可以很容易地被使用BAML viewer等工具的人盜取。 沒有任何可以混淆XAML的混淆工具/ BAML,因此將其放在代碼中的原因。但是,OP可能有不同的理由。 – 2009-08-08 18:21:31