wpf fadein和fadeout控件相互重叠

时间 2019-02-22
阅读 14
点赞 0
收藏 0
连接stephan-k%c3%bchn

考虑一个网格,其中有两个控件,一个是addcontrol,另一个是selectcontrol。

AddControl显示一个“添加”按钮,单击该按钮时,将调用一个AddCommand。

SelectControl包含几个按钮,单击这些按钮将调用SelectCommand。

addcommand将控件状态设置为active。

selectcommand将根据传递给它的命令参数执行一些操作,然后将控件状态设置为initial。

初始状态定义为addcontrol.visibility=visible,selectcontrol.visibility=collapsed。

活动状态定义为AddControl.Visibility=折叠,SelectControl.Visibility=可见。

到目前为止,很好,很琐碎。

与用户体验设计师交谈后,我们可能会得到以下建议:

  1. 淡出addcontrol并淡入用户用鼠标进入addcontrol的selectcontrol。如果用户在转换过程中离开addcontrol,则转换应中止。

  2. 淡出SelectControl,淡出用户的AddControl,然后用鼠标离开SelectControl。如果用户在转换过程中输入SelectControl,则转换应中止。

  3. 仍然可以单击(即使已经部分褪色)addcontrol立即进入活动状态。

  4. 最好能够在转换过程中单击SelectControl中的一个按钮。

我尝试过使用故事板、多触发器、事件触发器等各种方法。有趣的效果,但不是预期的行为。

我欢迎关于如何实现这一点的任何建议(最好是在XAML中,避免代码隐藏)。

首先,这里是景色

<Grid Grid.Row="1" Grid.Column="1" Background="Transparent">
  <Grid x:Name="Picker" Visibility="{Binding PickerVisibility}">
    <StackPanel>
      <TextBox Margin="10 10 10 10" BorderThickness="0" TextAlignment="Center">Buttons</TextBox>
      <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
        <StackPanel Orientation="Vertical">
          <Button Width="90" Margin="10 10 10 10" Tag="1" Command="{Binding SelectCommand}" CommandParameter="{Binding Path=Tag, RelativeSource={RelativeSource Self}}">T1</Button>
          <Button Width="90" Margin="10 10 10 10" Tag="2" Command="{Binding SelectCommand}" CommandParameter="{Binding Path=Tag, RelativeSource={RelativeSource Self}}">T2</Button>
          <Button Width="90" Margin="10 10 10 10" Tag="3" Command="{Binding SelectCommand}" CommandParameter="{Binding Path=Tag, RelativeSource={RelativeSource Self}}">T3</Button>
        </StackPanel>
      </ScrollViewer>
    </StackPanel>
  </Grid>
  <Grid x:Name="AddPage" Visibility="{Binding AddPageVisibility}">
    <Button Command="{Binding AddPageCommand}">+</Button>
  </Grid>
</Grid>
尚无答案