【问题标题】:how to change a control's position in uwp?如何更改控件在 uwp 中的位置?
【发布时间】:2018-02-01 16:01:28
【问题描述】:

我有一个网格控件,两行两列。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition x:Name="row1"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition x:Name="column1"/>
    </Grid.ColumnDefinitions>
</Grid>

现在我有另一个,默认情况下它的位置在第 1 行。 当窗口宽度大于1024时,我想将gridX的位置设置为column1。

我只想知道换位码,谢谢。

【问题讨论】:

  • 2 件事:1.) 到目前为止你尝试了什么? 2.)我不太确定,你想达到什么目的。你在你的网格中添加了什么以及你对 gridX 的含义是什么?
  • @Dai 编辑了我的问题并删除了
  • @vincent 我没有。查看编辑历史。你一开始就没有发布它。
  • 对不起,我记得输入了,可能还有其他问题。

标签: uwp uwp-xaml


【解决方案1】:

通用 Windows 平台提供 AdaptiveTriggers 仅用于此目的。

在页面的根内容元素(通常是Grid)下定义VisualState,它由AdaptiveTrigger 控制,并在窗口宽度大于1024 有效像素时显示。然后Setters 控制在状态之间转换时应执行的更改。

<VisualStateManager.VisualStateGroups>
    <VisualStateGroup>
        <VisualState>
            <VisualState.StateTriggers>
                <AdaptiveTrigger MinWindowWidth="1024"/>
            </VisualState.StateTriggers>

            <VisualState.Setters>
                <Setter Target="gridX.(Grid.Column)" Value="1"/>
            </VisualState.Setters>
        </VisualState>
    </VisualStateGroup>
</VisualStateManager.VisualStateGroups>

因为Grid.Column 是一个附加属性,所以需要将它用括号括在SetterTarget 中。示例代码假设您的网格具有x:Name="gridX" 属性。

【讨论】:

  • 是的,戴编辑了我的问题并删除了
猜你喜欢
  • 1970-01-01
  • 2016-11-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多