none
如何在Xaml中使用VisualState控制ListView的TransitionCollection有和无 RRS feed

  • 问题

  • 如上图所示,我如何在如何在Xaml中使用VisualState控制ListView的TransitionCollection有和无,也就是该如何在VisualState中指定Setter的Target和Value。

    谢谢~


    • 已编辑 Andy_Li_ 2015年10月17日 8:53
    2015年10月17日 8:52

答案

  • 我的理解,可以定义两个ItemsPanelTemplate,一个是有TransitionCollection的,一个是没有TransitionCollection的,分别命名为TemplateOne和TemplateTwo,setter的Target写 yourListView.ItemsPanelTemplate,Value写{StaticResource TemplateOne}和{StaticResource TemplateTwo}

    仅供参考^_^

    • 已标记为答案 Andy_Li_ 2015年10月19日 7:55
    2015年10月19日 1:51

全部回复

  • VisualState不是写在要设置的控件里面,参考这个文章:

    http://www.sharpgis.net/post/2015/03/24/Using-Custom-Visual-State-Triggers

    是这样使用:

    <Grid >
      <VisualStateManager.VisualStateGroups>
        <VisualStateGroup >
          <VisualState x:Name="narrow">
            <VisualState.StateTriggers>
              <AdaptiveTrigger MinWindowWidth="0" />
            </VisualState.StateTriggers>
            <VisualState.Setters>
              <Setter Target="status.Text" Value="Narrow view" />
            </VisualState.Setters>
          </VisualState>
          <VisualState x:Name="wide">
            <VisualState.StateTriggers>
              <AdaptiveTrigger MinWindowWidth="600" />
            </VisualState.StateTriggers>
            <VisualState.Setters>
              <Setter Target="status.Text" Value="Wide view" />
            </VisualState.Setters>
          </VisualState>
        </VisualStateGroup>
      </VisualStateManager.VisualStateGroups>
      
      <TextBlock x:Name="status" FontSize="40"
      HorizontalAlignment="Center" VerticalAlignment="Center" />
    </Grid>
    
    VisualState里写setter

    2015年10月17日 14:35
  • VisualState不是写在要设置的控件里面,参考这个文章:

    http://www.sharpgis.net/post/2015/03/24/Using-Custom-Visual-State-Triggers

    是这样使用:

    <Grid >
      <VisualStateManager.VisualStateGroups>
        <VisualStateGroup >
          <VisualState x:Name="narrow">
            <VisualState.StateTriggers>
              <AdaptiveTrigger MinWindowWidth="0" />
            </VisualState.StateTriggers>
            <VisualState.Setters>
              <Setter Target="status.Text" Value="Narrow view" />
            </VisualState.Setters>
          </VisualState>
          <VisualState x:Name="wide">
            <VisualState.StateTriggers>
              <AdaptiveTrigger MinWindowWidth="600" />
            </VisualState.StateTriggers>
            <VisualState.Setters>
              <Setter Target="status.Text" Value="Wide view" />
            </VisualState.Setters>
          </VisualState>
        </VisualStateGroup>
      </VisualStateManager.VisualStateGroups>
      
      <TextBlock x:Name="status" FontSize="40"
      HorizontalAlignment="Center" VerticalAlignment="Center" />
    </Grid>
    VisualState里写setter


    多谢回答。我知道不写在要设置了控件里,我也知道在VisualState里写setter。我就是不知道怎么写Setter的Target和Value来控制ListView的TransitionCollection有和无
    2015年10月18日 5:22
  • 我的理解,可以定义两个ItemsPanelTemplate,一个是有TransitionCollection的,一个是没有TransitionCollection的,分别命名为TemplateOne和TemplateTwo,setter的Target写 yourListView.ItemsPanelTemplate,Value写{StaticResource TemplateOne}和{StaticResource TemplateTwo}

    仅供参考^_^

    • 已标记为答案 Andy_Li_ 2015年10月19日 7:55
    2015年10月19日 1:51
  • 我的理解,可以定义两个ItemsPanelTemplate,一个是有TransitionCollection的,一个是没有TransitionCollection的,分别命名为TemplateOne和TemplateTwo,setter的Target写 yourListView.ItemsPanelTemplate,Value写{StaticResource TemplateOne}和{StaticResource TemplateTwo}

    仅供参考^_^

    对头。多谢!

    2015年10月19日 7:55