缩小WPF小组儿童的规模

缩小WPF小组儿童的规模,wpf,user-controls,panels,Wpf,User Controls,Panels,我正试图改变一个我在工作中被指派的项目,但我在一项任务中遇到了问题。我需要做的是创建一个NavigationBar组件,它将显示动态创建的按钮(基于可用屏幕列表)。按钮的宽度不是静态的,应该与按钮文本相适应(宽度是文本宽度加上一些静态边距)。问题是该控件将被调整大小,并相应地缩小按钮的大小-这意味着字体大小,因此文本宽度。理论上,这可以使用Viewbox实现,但我不认为当每个按钮都基于其文本具有不同的宽度时,我可以做到这一点。按钮的高度是静态的 比如说 开始时,组件的宽度为100%(按钮的宽度

我正试图改变一个我在工作中被指派的项目,但我在一项任务中遇到了问题。我需要做的是创建一个NavigationBar组件,它将显示动态创建的按钮(基于可用屏幕列表)。按钮的宽度不是静态的,应该与按钮文本相适应(宽度是文本宽度加上一些静态边距)。问题是该控件将被调整大小,并相应地缩小按钮的大小-这意味着字体大小,因此文本宽度。理论上,这可以使用Viewbox实现,但我不认为当每个按钮都基于其文本具有不同的宽度时,我可以做到这一点。按钮的高度是静态的

比如说

  • 开始时,组件的宽度为100%(按钮的宽度加上一些标记),每个按钮都以全宽显示,并带有一些默认字体大小
  • 当宽度达到120%时,按钮的大小不会像以前一样改变
  • 当宽度达到80%时,按钮文本大小将缩小到80%(通过更改字体大小),以便按钮适合
其中一部分已经通过使用按钮模板中的Viewbox实现了,但是我应该通过允许按钮中的不同文本宽度来增强该组件。这意味着按钮不应该有MaxWidth,Width应该是auto,MinWidth应该根据控件本身的宽度进行缩放。此外,缩小按钮容器不会缩放其子级。也许我应该用自己的逻辑实现自己的面板?还有一个问题是,控件在缩小时只应缩小按钮,而在放大时不应加宽按钮

我真的不知道从哪里开始,在一天多的谷歌搜索和原型制作失败后,我会感谢每一个小小的进步


编辑:忘记提到我需要保持按钮的高度,这样我就不能简单地将按钮容器插入到视图框中。此外,如果我将ViewBox配置为仅垂直收缩,文本将变得不成比例。

为什么不将所有按钮放在一个ViewBox中?如果我不需要保持按钮的高度(我最初忘记在问题中提到),这将是一个很好的解决方案。在使用ViewBox时,按钮的水平尺寸也会缩小,或者文本会变得不成比例。或者有没有办法改变Viewbox的行为?您可以为Viewbox本身设置大小界限,然后它将在某些点停止缩放。我认为文本总是保持比例。