Xamarin 表单 - 如何使 UI 在 UWP 中响应
Xamarin Form - How to make UI Responsive in UWP
我正在 uwp 桌面应用程序中开发 DMS 应用程序。我开发了 design.but 我的设计不是 responsive.I 我浏览了那么多 UI 响应式文章,但我无法使 ui 响应式。:( 我已上传我的一个项目模块请检查一下,让我知道 it.I 想要制作 ui 响应式表单登录页面以添加新用户有什么问题。
link 下载 UWPUI 响应式 zip 文件。
提前致谢。:)
在UWP中,我们使用VisualStateManager and AdaptiveTrigger elements to create adaptive layouts. You could check the official Tutorial: Create adaptive layouts文档来学习如何使自适应UI。
XAML Controls Gallery 中有很多使用自适应布局的示例。您可以查看这些演示以供参考。
对于你的问题,你只是说你想要一个响应式 UI,但你并不是特定于自适应布局的特定问题。所以,我只能为您提供这些信息。如果您想获得更多帮助,您需要 post 一个关于使用 VisualStateManager 和 AdaptiveTrigger 制作响应式布局的具体问题。
Xavier Xie - MSFT 的回复是正确的。我检查了你的 link,如果你想让 UI 响应你的页面,你可以创建包含不同 VisualState
匹配不同 window 大小的 VisualStateGroups
。当你调整 window 的大小时, AdaptiveTrigger
将被触发,然后你可以在 VisualState.Setters
中 re-layout ,例如:
<Page.Resources>
<x:Double x:Key="NarrowMinWidth">0</x:Double>
<x:Double x:Key="NormalMinWidth">521</x:Double>
<x:Double x:Key="WideMinWidth">1200</x:Double>
</Page.Resources>
<Grid>
......
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="AdaptiveVisualStateGroup">
<VisualState x:Name="VisualStateNarrow">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource NarrowMinWidth}" />
</VisualState.StateTriggers>
<VisualState.Setters>
<!-- TODO: change properties for narrow view -->
<Setter Target="UserNameSTP.(Grid.Column)" Value="4" />
<Setter Target="UserNameSTP.(Grid.Row)" Value="3" />
<Setter Target="UserNameTBK.Margin" Value="10,-25,0,0" />
<Setter Target="UserNameSTP.Width" Value="80" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="VisualStateNormal">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource NormalMinWidth}" />
</VisualState.StateTriggers>
<VisualState.Setters>
<!-- TODO: change properties for normal view -->
<Setter Target="UserNameTBK.Text" Value="NormalMinWidth" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="VisualStateWide">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource WideMinWidth}" />
</VisualState.StateTriggers>
<VisualState.Setters>
<!-- TODO: change properties for wide view -->
<Setter Target="UserNameTBK.Text" Value="WideMinWidth" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
......
</Grid>
我正在 uwp 桌面应用程序中开发 DMS 应用程序。我开发了 design.but 我的设计不是 responsive.I 我浏览了那么多 UI 响应式文章,但我无法使 ui 响应式。:( 我已上传我的一个项目模块请检查一下,让我知道 it.I 想要制作 ui 响应式表单登录页面以添加新用户有什么问题。
link 下载 UWPUI 响应式 zip 文件。
提前致谢。:)
在UWP中,我们使用VisualStateManager and AdaptiveTrigger elements to create adaptive layouts. You could check the official Tutorial: Create adaptive layouts文档来学习如何使自适应UI。
XAML Controls Gallery 中有很多使用自适应布局的示例。您可以查看这些演示以供参考。
对于你的问题,你只是说你想要一个响应式 UI,但你并不是特定于自适应布局的特定问题。所以,我只能为您提供这些信息。如果您想获得更多帮助,您需要 post 一个关于使用 VisualStateManager 和 AdaptiveTrigger 制作响应式布局的具体问题。
Xavier Xie - MSFT 的回复是正确的。我检查了你的 link,如果你想让 UI 响应你的页面,你可以创建包含不同 VisualState
匹配不同 window 大小的 VisualStateGroups
。当你调整 window 的大小时, AdaptiveTrigger
将被触发,然后你可以在 VisualState.Setters
中 re-layout ,例如:
<Page.Resources>
<x:Double x:Key="NarrowMinWidth">0</x:Double>
<x:Double x:Key="NormalMinWidth">521</x:Double>
<x:Double x:Key="WideMinWidth">1200</x:Double>
</Page.Resources>
<Grid>
......
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="AdaptiveVisualStateGroup">
<VisualState x:Name="VisualStateNarrow">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource NarrowMinWidth}" />
</VisualState.StateTriggers>
<VisualState.Setters>
<!-- TODO: change properties for narrow view -->
<Setter Target="UserNameSTP.(Grid.Column)" Value="4" />
<Setter Target="UserNameSTP.(Grid.Row)" Value="3" />
<Setter Target="UserNameTBK.Margin" Value="10,-25,0,0" />
<Setter Target="UserNameSTP.Width" Value="80" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="VisualStateNormal">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource NormalMinWidth}" />
</VisualState.StateTriggers>
<VisualState.Setters>
<!-- TODO: change properties for normal view -->
<Setter Target="UserNameTBK.Text" Value="NormalMinWidth" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="VisualStateWide">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource WideMinWidth}" />
</VisualState.StateTriggers>
<VisualState.Setters>
<!-- TODO: change properties for wide view -->
<Setter Target="UserNameTBK.Text" Value="WideMinWidth" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
......
</Grid>