wpf XMAL中隱藏控制元件
阿新 • • 發佈:2019-01-08
首先,需要解決怎樣在Click事件後設置Visibility屬性?WPF中的EventSetter只能連線事件和事件處理的方法。而EventTrigger則只能定義TriggerAction,而不能新增任何SetterBase。
解決方案就是用一個關鍵幀動畫,這樣可以用在EventTrigger中,接著用一個DiscreteObjectKeyFrame來設定屬性值就可以了。這個關鍵幀的KeyTime是0:0:0,這樣在動畫開始的時候,這個值會被立即設定。
接著怎樣引用Visibility的列舉值?用x:Static標記擴充套件就可以了
程式碼:
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="263"> <Grid> <StackPanel> <Button Content="Click Hide"> <Button.Triggers> <EventTrigger RoutedEvent="Button.Click"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard Storyboard.TargetName="text" Storyboard.TargetProperty="Visibility"> <ObjectAnimationUsingKeyFrames> <DiscreteObjectKeyFrame Value="{x:Static Visibility.Hidden}" KeyTime="0:0:0"/> </ObjectAnimationUsingKeyFrames> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </Button.Triggers> </Button> <Button Name="text" Height="20" Width="40" Margin="18,30,113,161"> zxl</Button> </StackPanel> </Grid> </Window>
效果: