我在WPF中有一个自定义UserControl,它有一个堆栈面板停靠在顶部以替换标题栏功能。
堆栈面板的左侧部分有一个标签,在标签包含长字符串的情况下,该标签包含用于文本换行的文本块。
拖动控件时出现问题。当窗口被拖动时,我自然会喜欢标签的文本显示越来越多。
我希望标签在窗口放大时放大,但我不知道如何处理。
这是我为在屏幕截图中实现标题栏而编写的代码:
<Grid>
<DockPanel>
<StackPanel Name="titleBar" DockPanel.Dock="Top" Height="28" FlowDirection="RightToLeft" Orientation="Horizontal" Background="AliceBlue">
<Button x:Name="btnClose" Margin="0,0,5,0" Click="btnClose_Click">
</Button>
<Button x:Name="btnRunQuery" ToolTip="Run Query">
</Button>
<Button x:Name="btnFilter" ToolTip="Toggle Filter" Click="btnFilter_Click">
</Button>
<Button x:Name="btnAttributes">
</Button>
<Button x:Name="btnAll" Click="btnAll_Click">ALL</Button>
<Label Name="lblTableName" FontSize="14" MaxWidth="150">
<TextBlock Name="tbTableName" TextTrimming="WordEllipsis" TextWrapping="NoWrap" FlowDirection="LeftToRight"/>
</Label>
</StackPanel>
</DockPanel>
</Grid>
编辑:我还想补充一点,当渲染用户控件时,我不希望标签的宽度超过150.因此MaxWidth="150"
属性。但是,我希望标签随着窗口的扩大而增长。
答案 0 :(得分:2)
使用网格而不是StackPanel。 包含标签的最后一列应具有宽度=“自动”。您可以在此之前添加另一列(我的意思是标签列的右侧),Width =“*”,以便在窗口太宽时填充标签和按钮之间的空白区域。
答案 1 :(得分:0)
您需要将标签锚定到边缘。单击标签时,您应该看到4边的锚定符号。锚定时,4个符号将为黑色。