私はStackPanelとボタンを持っています。ボタンの内容の開始は< <でなければなりません。ボタンをクリックすると、StackPanelのコンテンツが折りたたまれ、ボタンのテキストが>>折りたたみが正しく起こっている場所になるはずです。もう一度同じボタンを押すと内容が表示され、テキストは< <でなければなりません。wpfアニメーションボタンをクリックしてパネルを非表示にしたり、閉じたりする
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" x:Name="stkEasyLocatePanel" Loaded="stkEasyLocatePanel_Loaded" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="0,0,0,28"></StackPanel>
<Button Grid.Column="1" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0,5,0,0" Panel.ZIndex="140" Height="20" Width="25" Background="Transparent" Content="<<">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard x:Name="HideStackPanel">
<DoubleAnimation Storyboard.TargetName="stkEasyLocatePanel" Storyboard.TargetProperty="Width" From="330" To="0" Duration="0:0:0.3">
<DoubleAnimation.EasingFunction>
<PowerEase EasingMode="EaseIn"></PowerEase>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
<BeginStoryboard>
<!--This part dosent work. The content collapses and shows on a single click. But I want it to happen on two clicks of same button-->
<Storyboard x:Name="ShowStackPanel">
<DoubleAnimation Storyboard.TargetName="stkEasyLocatePanel" Storyboard.TargetProperty="Width" From="0" To="330" Duration="0:0:0.3">
<DoubleAnimation.EasingFunction>
<PowerEase EasingMode="EaseIn"></PowerEase>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
</Grid>
純粋なxamlにしたいですか?トリガーまたはVisualStateManagerを使用したいですか? –
どちらかが問題ありません。しかし、私は通常のボタンのためにこれを行うソリューションを知りたいです。 – nikhil
通常のボタンはなぜ重要ですか?必要に応じて通常のボタンのデザイン/動作を模倣するようにトグルをスタイルし、@AnjumSKhan answerが正しいオプションです。ちょうど普通のボタンを使うには、コードの後ろにある条件式を処理する必要があります。純粋なxamlのアプローチは、この事例では私の意見では問題ありません。 –