(WPF/XAML)如何创建一个类似于Window的代码段工具的响应工具栏?

n53p2ov0  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(125)

我正在尝试在WPF中创建一个响应工具栏,它的工作原理与Windows截图工具中的工具栏类似(如果按Win + Shift + S,则会打开该工具栏)。
剪切工具的工具栏有3组按钮。当您更改窗口大小时,组之间的间距会更改,而组保持其原始宽度。
Small windowBig window
如果你把窗口做得比第一张图小,它会分成两个工具栏。但是不用担心,我可以简单地给我的应用设置一个最小的宽度,我真的不在乎那部分。我想要的是在我的工具栏上有同样的间隔效果,我有3/4组按钮,但是我不能让它们做同样的事情。
我试着用网格来表示按钮组,并把按钮组放在另一个网格中作为工具栏,但是当我调整窗口大小时,一些内容开始消失,即使还有一些空间。

lyfkaqu1

lyfkaqu11#

我本来只想写一个评论,但我想我需要一些xaml的清晰。
Wpf使用gridlength来按比例调整大小。你可以让列(或行)使用 * 的倍数来分割任何未使用的空间。因此:

<Grid.ColumnDefinitions>
        <ColumnDefinition Width="100" Name="SomeButtonsGoHere"/>
        <ColumnDefinition Width="*"  Name="ProportionallySpacedColumnBetweenButtons"/>
        <ColumnDefinition Width="100"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="100"/>
    </Grid.ColumnDefinitions>

你可以把一个uniformgrid放在每个固定大小的列和按钮中,每个列和按钮中只有一行。
你的按钮可能不是100px宽当然。
但是如果你把这个网格放在一个窗口中,固定大小的列将保持大小不变,而 * 大小的列将相等地填充剩余的空间。
一旦你有了一些相对简单的工作,你可以考虑迭代。你可以使用一个转换器来计算大小比较窗口宽度,视框按比例缩小内容。听起来像是过于复杂的事情虽然。

相关问题