我有一个自定义控件ButtonRow
,最终将进入另一个控件。
这非常简单,在标签上有一个边框和一个按钮。
我需要使其边框扩展其宽度以填充到按钮所在的位置。如下图所示,这没有发生:
可以在下面找到XAML。我尝试摆弄标签和边框的水平对齐方式,但是它们只会调整大小以适合标签的文本内容。
我知道存在一个问题和名称非常相似的问题,但是没有人需要做完全相同的事情或帮助我解决了问题。
我尝试过水平对齐使用StackPanel,但所做的只是使按钮移到边框旁边。
如何使边框扩大以填充可用空间?
<Grid>
<DockPanel Height="Auto" HorizontalAlignment="Stretch" Margin="0" Name="dockPanel1" VerticalAlignment="Top" Width="Auto">
<Border BorderBrush="#FFDADFE1" Background="#FFECF0F1" BorderThickness="1" Height="20" Name="bdrFilter" HorizontalAlignment="Stretch">
<Label Content="Filter..." FontStyle="Italic" Foreground="#FF6C7A89" Height="20" Name="lblFilter" Padding="5,0" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" />
</Border>
<Button Style="{StaticResource FlatButtonStyle}" Content="+" Height="20" HorizontalAlignment="Right" Name="btnAddFilter" VerticalAlignment="Top" Width="20" Foreground="#FF6C7A89" ForceCursor="True" BorderBrush="{x:Null}" />
</DockPanel>
</Grid>
(按钮样式不会影响其对齐方式或任何其他相关属性)
一个DockPanel
是不正确的Panel
使用这一要求......像StackPanel
,它并没有调整其内容。取而代之的是,只需使用常规Grid
(其资源也比少DockPanel
):
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border BorderBrush="#FFDADFE1" Background="#FFECF0F1" BorderThickness="1"
Height="20" Name="bdrFilter" VerticalAlignment="Top">
<Label Content="Filter..." FontStyle="Italic" Foreground="#FF6C7A89"
Height="20" Name="lblFilter" Padding="5,0" />
</Border>
<Button Grid.Column="1" Content="+" Height="20" HorizontalAlignment="Right"
Name="btnAddFilter" VerticalAlignment="Top" Width="20" Foreground="#FF6C7A89"
ForceCursor="True" BorderBrush="{x:Null}" />
</Grid>
请参阅MSDN上的“面板概述”页面,以获取有关Panel
WPF中不同版本的更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句