我有一个DockPanel,它包含一个ScrollViewer [居中对齐]和一个左右按钮。 我的xaml就像
<DockPanel LastChildFill="True">
<Button VerticalAlignment="Stretch" HorizontalAlignment="Stretch" DockPanel.Dock="Left">Left</Button>
<Button VerticalAlignment="Stretch" HorizontalAlignment="Stretch" DockPanel.Dock="Right">Right</Button>
<ScrollViewer Name="scrollAreaPageView" HorizontalAlignment="Center" VerticalAlignment="Center"
HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
</ScrollViewer>
</DockPanel>
它会按预期生成输出,但是左和右按钮没有完全向左和向右拉伸到ScrollViewer(它们仅在拐角处)。 输出的屏幕截图是
如何让它完全拉伸到中心scrollViewer的左右两侧
答案 0 :(得分:1)
在这种情况下,DockPanel
可能并不理想,您可能会在此处使用Grid
所需的列定义
样品
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Button>Left</Button>
<ScrollViewer Name="scrollAreaPageView"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Grid.Column="1">
</ScrollViewer>
<Button Grid.Column="2">Right</Button>
</Grid>
在上面的示例中减去所需空间后可用的空间b
替代方法
我试图用纯xaml做这个方法,这种方法可以帮助你实现所需的无代码。这是一个例子
<Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="{Binding ActualWidth,ElementName=scrollAreaPageView}" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Button>Left</Button>
<Button Grid.Column="2">Right</Button>
</Grid>
<ScrollViewer HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="50,0"
Name="scrollAreaPageView"
HorizontalScrollBarVisibility="Auto">
</ScrollViewer>
</Grid>
Margin
元素中的 scrollAreaPageView
定义了按钮的最小宽度。试一试,看看是否有帮助