问题:在网格周围添加ScrollViwer时,网格缩放被取消!
Eksampel:我创建了一个网格宽度为3列的列,1.coulymn应该总是比第2列和第3列大2倍!没有ScrollViewer,这总是正确的,但是在添加它时,它允许每列确定自己的大小.
<Window x:Class="alternatingGridRow.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="200" Width="Auto" Loaded="WindowLoaded">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled">
<Grid x:Name="LayoutRoot" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MinHeight="23" MaxHeight="60"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock HorizontalAlignment="Stretch" Text="sdasdasdasdsadsadasddasdck" TextWrapping="Wrap" VerticalAlignment="Top" />
<TextBlock Foreground="Red" Grid.Column="1" HorizontalAlignment="Stretch" Text="sdasdasdasdsadsadasddasdck" TextWrapping="Wrap" VerticalAlignment="Top" />
</Grid>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
您可以清楚地看到缩放因子是完全错误的!由于2.列是大的方式!和3.列是一些随机大小...
对此的任何建议都很好听了......干杯马丁
当前设置是错误的,因为ScrollViewer
它不限制其子Grid
节点的宽度和高度(即无限制),而且,总是填充其父容器上可用的所有可用水平和垂直空间,这就是为什么你看到这种奇怪的行为.您必须执行以下操作之一:
ScrollViewer
如你所述删除.Grid
.您要求网格为每列分配无限空间的百分比.无限,因为在ScrollViewer上启用了水平滚动,ScrollViewers的整个要点是虚拟化空间.所以你要求它做的事情甚至没有意义.
好的,我明白你的观点,为什么柱子的尺寸是螺丝的。
但是..当我读到你的帖子时我想到了一个解决方案......
正如穆罕默德所说,在我的网格上设置一个固定宽度,好吧..我希望我的网格与滚动查看器具有相同的宽度,除非它变小,然后我希望滚动查看器生效!所以..我的解决方案是:
MinWidth="500" Width="{Binding ActualWidth, ElementName=scrollviewer}"
<Window x:Class="alternatingGridRow.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="200" Width="Auto">
<ScrollViewer x:Name="scrollviewer" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled">
<Grid x:Name="LayoutRoot" ShowGridLines="True" MinWidth="500" Width="{Binding ActualWidth, ElementName=scrollviewer}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MinHeight="23" MaxHeight="60"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock HorizontalAlignment="Stretch" Text="sdasdasdasdsadsadasddasdck" TextWrapping="Wrap" VerticalAlignment="Top" />
<TextBlock Foreground="Red" Grid.Column="1" HorizontalAlignment="Stretch" Text="sdasdasdasdsadsadasddasdck" TextWrapping="Wrap" VerticalAlignment="Top" />
</Grid>
</ScrollViewer>
</Window>
Run Code Online (Sandbox Code Playgroud)
(仅水平固定)
谢谢。
归档时间: |
|
查看次数: |
3349 次 |
最近记录: |