(WPF/XAML)如何创建类似于窗口截图工具中的响应式工具栏?



我试图在WPF中创建一个响应式工具栏,其工作方式类似于Windows中的剪切工具(如果按下Win+Shift+S则打开的工具栏)。

剪贴工具栏有3组按钮。当你改变窗口的大小,组之间的空间改变,而组保持其原有的宽度。

小窗口大窗口

如果你让窗口比第一张图片小,它会分成2个工具栏。不过不用担心,我可以为app设置一个最小宽度,我不关心这部分。我想要的是在我的工具栏上有同样的间距效果,我有3/4组按钮,但是我不能让它们有同样的效果。

我尝试使用网格的按钮组,并把组在另一个网格作为工具栏,但当我调整窗口的大小一些内容开始消失,即使有一些空间。

我本来打算写一个注释,但是为了清晰起见,我想我需要一些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宽。

但是如果你把网格放在一个窗口中,固定大小的列将保持大小,而* *大小的列将平等地填满剩余的空间。

一旦你有了一些相对简单的工作,你就可以考虑迭代了。您可以使用转换器来计算大小与窗口宽度的比较,viewbox按比例缩小内容。听起来好像事情过于复杂了。

相关内容

最新更新