c# – WPF如何扩展边框宽度以填充DockPanel中的可用空间
发布时间:2020-12-16 02:02:45 所属栏目:百科 来源:网络整理
导读:我有一个自定义控件ButtonRow,最终将进入一个不同的控件. 它很简单,它有一个边框,标签和一个按钮. 我需要这样做,以便边框将扩展其宽度以填充按钮所在的位置. 这种情况不会发生,如下图所示: XAML可以在下面找到.我试图摆弄标签和边框的水平对齐,但它们只会重
我有一个自定义控件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> 有关WPF中不同Panel的更多信息,请参阅MSDN上的Panels Overview页面. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |