- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在为我的 win 10 通用应用程序制作自适应布局。出于某种原因,当我尝试在 visualState 触发器中更改 wrapGrid 的 maximumRowsOrColumns 值时,它无法正常工作。
好吧,如果用户更改窗口大小,它实际上会起作用,但是在启动程序时,adaptiveTrigger 似乎对该值没有影响。
这是一些代码:
<Hub>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="wideView">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="720" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="WrapPanel.MaximumRowsOrColumns" Value="3" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="narrowView">
<VisualState.Setters>
<Setter Target="WrapPanel.MaximumRowsOrColumns" Value="2" />
</VisualState.Setters>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<HubSection>
<DataTemplate>
<GridView>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation="Horizontal"
x:Name="WrapPanel"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridViewItem>
<Rectangle Width="250" Height="100" Fill="Red" Margin="6" />
</GridViewItem>
<GridViewItem>
<Rectangle Width="250" Height="100" Fill="Yellow" Margin="6" />
</GridViewItem>
<GridViewItem>
<Rectangle Width="250" Height="100" Fill="Green" Margin="6" />
</GridViewItem>
<GridViewItem>
<Rectangle Width="250" Height="100" Fill="Blue" Margin="6" />
</GridViewItem>
</GridView>
</DataTemplate>
</HubSection>
</Hub>
最佳答案
如果您希望触发器在启动时起作用,您可以尝试强制应用程序以特定的宽度和高度启动。这样你的视觉状态就可以被触发。下面是您需要放入 yourfile.xaml.cs 中的片段:
ApplicationView.PreferredLaunchWindowingMode != ApplicationViewWindowingMode.Auto;
ApplicationView.PreferredLaunchViewSize = new Size { Width = 600, Height = 500 };
ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
另外一个好的编码实践是从
<Hub>
<HubSection x:Name="HubSection" Header="Test">
<DataTemplate>
<GridView>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation="Horizontal"
x:Name="WrapPanel1" MaximumRowsOrColumns="3"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridViewItem >
<Rectangle Width="250" Height="100" Fill="Red" Margin="6" />
</GridViewItem>
<GridViewItem>
<Rectangle Width="250" Height="100" Fill="Yellow" Margin="6" />
</GridViewItem>
<GridViewItem>
<Rectangle Width="250" Height="100" Fill="Green" Margin="6" />
</GridViewItem>
<GridViewItem>
<Rectangle Width="250" Height="100" Fill="Blue" Margin="6" />
</GridViewItem>
<GridViewItem>
<Rectangle Width="250" Height="100" Fill="Orange" Margin="6" />
</GridViewItem>
</GridView>
</DataTemplate>
</HubSection>
</Hub>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="wideView">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="700" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="WrapPanel1.MaximumRowsOrColumns" Value="3"/>
<Setter Target="HubSection.Header" Value="WideView" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="narrowView">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="WrapPanel1.MaximumRowsOrColumns" Value="2" />
<Setter Target="HubSection.Header" Value="Vertical" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid>
关于c# - 通过 visualState 触发器更改 WrapGrid 的 maximumRowsOrColums 值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31429529/
我有 GridView 和 WrapGrid 作为 ItemTemplate。看起来像:
基本上我想要一个 wrapPanel,但我希望项目捕捉到网格而不是向上按到左侧,这样我可以获得一个漂亮的统一外观网格,它会自动占用可用空间。 WrapPanel 处理调整大小部分。WPF.Contri
我有主网格的下一个 XAML:
我在 ListView 中使用 WrapGrid 作为 itemscontrol 以使用以下 XAML 代码 (WinRT) 水平显示项目
WrapGrid 使 TextBlocks 有效地消失。显示项目的轮廓,但看不到文本。在运行时,项目正确显示。 如何让它们在设计时出现?
我正在尝试像这样修改我的 WrapGrid 的 MaximumRowsOrColumns 属性: 然后我使用此代码更改 WrapGrid:
两者 VariableSizedWrapGrid和 WrapGrid有奇怪的测量 - 他们根据第一项测量所有 child 。 因此,以下 XAML 将剪辑第三个项目。
我正在开发一个 UWP 应用程序,我正在尝试水平对齐每个 gridview 组中的项目 我有这个: GROUP 1 Data 1 | Data 2 | Data 3 Data 1 | Data 2 |
我正在为我的 win 10 通用应用程序制作自适应布局。出于某种原因,当我尝试在 visualState 触发器中更改 wrapGrid 的 maximumRowsOrColumns 值时,它无法正常
XAML StackPanel在一个方向上并排对齐控件。一个 WrapPanel相似但像 TextWrapping="Wrap"在 XAML 中 TextBox当达到相应的高度或宽度时,控件“换行”到
我有一个 Windows Phone 8.1 XAML 应用程序,它有一个 ListView 和 WrapGrid 作为它的 ItemsPanel,用于在两列中显示项目
我是一名优秀的程序员,十分优秀!