我想改变我的程序,以便在点击图像时显示应用程序最右侧的侧边栏。
我目前一直在尝试使用Expander
来实现这一目标。这是迄今为止的样子:
<Expander>
<Expander.Header>
<Image Width="200" Height="300" Source="{Binding image}"/>
</Expander.Header>
<i:Interaction.Behaviors>
<local:UniqueNameBehavior ID="{Binding id}"/>
</i:Interaction.Behaviors>
<StackPanel Margin="10,4,0,0">
<ToggleButton Margin="4" Content="Option 1" Template="{StaticResource SimpleExpanderButtonTemp}"/>
<ListView>
<TextBox Text="Search" />
</ListView>
</StackPanel>
</Expander>
这个想法是,无论何时点击任何电影,都会显示应用程序最右侧的侧边栏,其中包含有关电影的信息。如果随后点击了另一部电影,侧边栏现在将包含有关新电影的信息。
我知道可以更改ExpandDirection
,但这只会导致内容出现在图片旁边而不是应用程序的最右边。
我也尝试调整Margin
的{{1}},但这会导致周围的电影被推到一边。
有人可以帮助我解决这个问题吗?
感谢您的帮助!
答案 0 :(得分:1)
我不相信使用扩展器可以实现这种行为。 为什么不在应用程序的最右侧创建一个网格,其宽度设置为0,当您单击/选择一个电影时,它将网格宽度设置为新值并根据电影更改其内容?
<Grid HorizontalAlignment="Right">
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Width" Value="0"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ShowMovieForm}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.1" Storyboard.TargetProperty="Width" To="400" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.1" Storyboard.TargetProperty="Width" To="0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
</Grid>