首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用VSM触发器更改GridView项高度

使用VSM触发器更改GridView项高度
EN

Stack Overflow用户
提问于 2015-08-05 18:39:15
回答 1查看 440关注 0票数 1

我目前正在处理一个WPF应用程序,并且我有一个GridView显示来自预先填充的集合的项:

代码语言:javascript
复制
<GridView x:Name="GridContainer" ... ItemsSource="{Binding ProfItemCollection}">
      <GridView.ItemTemplate>
          <DataTemplate>
               <local:ProfItem />
          </DataTemplate>
     </GridView.ItemTemplate>         
</GridView>

我还有一个,它具有基于窗口大小的触发器:

代码语言:javascript
复制
<VisualStateManager.VisualStateGroups>
    <VisualStateGroup>
        <VisualState x:Name="NarrowState">
            <VisualState.StateTriggers>
                <AdaptiveTrigger MinWindowWidth="300" MinWindowHeight="300"/>
            </VisualState.StateTriggers>
            <VisualState.Setters>
                ...
                ...
            </VisualState.Setters>
        </VisualState>
        ...
        ...
    </VisualStateGroup>
</VisualStateManager.VisualStateGroups>

我希望从这些可视状态中更改GridView项的高度。我很难做到这一点.我知道我可以通过在GridView控件中执行以下操作来改变高度:

代码语言:javascript
复制
<GridView.ItemContainerStyle>
    <Style TargetType="GridViewItem">
        <Setter Property="Height" Value="100" />
    </Style>
</GridView.ItemContainerStyle>

但是,我不知道如何在VisualState设置器中更改这个属性值。我尝试在上面的代码中将一个x:Name属性附加到设置程序,但是当我在VisualState设置器中引用这个名称时,它不起作用。

有什么方法可以在XAML中实现这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-05 23:13:54

我没有使用VSM,但是您是否尝试声明需要在as资源之间切换的各种样式,并将GridView的样式分配给setter中的正确资源?

代码语言:javascript
复制
<!-- In resources section -->
<Style x:Key="smallGVStyle" TargetType="GridViewItem">
    <Setter Property="Height" Value="100" />
</Style>
<Style x:Key="mediumGVStyle" TargetType="GridViewItem">
    <Setter Property="Height" Value="300" />
</Style>

<!-- VSM -->
<VisualStateManager.VisualStateGroups>
    <VisualStateGroup>
        <VisualState x:Name="NarrowState">
            <VisualState.StateTriggers>
                <AdaptiveTrigger MinWindowWidth="300" MinWindowHeight="300"/>
            </VisualState.StateTriggers>
            <VisualState.Setters>
                <Setter TargetName="GridContainer" Property="ItemContainerStyle" Value="{StaticResource ResourceKey=smallGVStyle}"/>                ...
            </VisualState.Setters>
        </VisualState>
        ...
        ...
    </VisualStateGroup>
</VisualStateManager.VisualStateGroups>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31840317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档