【发布时间】:2017-11-30 13:55:19
【问题描述】:
我只想知道 Viewbox 是否只能包含方形网格等 Squre 元素? Viewbox 可以包含矩形网格吗?
我的问题原因: 我正在尝试将矩形 Grid 放置到 Viewbox 控件中,但是当我这样做时,它会在视图框中从上侧和下侧留下额外的边距,以使元素成为方形。
我的代码:
<ListView Grid.Row="9"
x:Name="lstView"
CanDragItems="True"
ItemsSource="{Binding Details.data}"
ItemTemplate="{StaticResource lvTemplate}"
Style="{StaticResource HorizontalWrapView}" />
------------------------------------
<DataTemplate x:Key="lvTemplate">
<Viewbox>
<Grid Margin="10 0" Height="120" Width="170" Background="Gray">
<Grid >
<TextBlock Text="abc"
Style="{StaticResource TileOverlay}" />
</Grid>
</Grid>
</Viewbox>
</DataTemplate>
---------------------------------------------------------------
<Style x:Key="HorizontalWrapView"
TargetType="ListView">
<Setter Property="Template"
Value="{StaticResource ListViewNoScroll}" />
<Setter Property="ItemsPanel"
Value="{StaticResource HorizontalWrapPanel}" />
<Setter Property="SelectionMode"
Value="None" />
<Setter Property="IsItemClickEnabled"
Value="True" />
<Setter Property="MaxWidth"
Value="{StaticResource MaxContentWidth}" />
</Style>
-----------------------------------------------
<ControlTemplate x:Key="ListViewNoScroll">
<ItemsPresenter />
</ControlTemplate>
------------------------------------------------
<ItemsPanelTemplate x:Key="HorizontalWrapPanel">
<WrapGrid Orientation="Horizontal"
Margin="{StaticResource ListMargin}" />
</ItemsPanelTemplate>
输出:
这个 dataTemplate 是具有 WrapGrid 样式的列表视图。每个网格都在一个单独的视图框中。
【问题讨论】:
-
我已经测试了您的代码,但无法重现您的问题。包含矩形网格的视图框在我这边没有拉伸为正方形。您能否提供有关您的代码的更多详细信息,例如
WrapGrid的样式。 -
我已经添加了所有与listview相关的代码sn-ps。请检查并帮助我。我想使网格成为矩形,上下没有多余的边距。
标签: uwp windows-runtime windows-10 uwp-xaml viewbox