缩小WPF面板儿童

时间:2016-03-18 10:40:08

标签: wpf user-controls panels

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

例如

  • 一开始,组件的宽度为100%(按钮的宽度加上一些结合),每个按钮都以全宽度显示,并带有一些默认的字体大小。
  • 当宽度达到120%时,按钮的大小不会因为它们是完整尺寸而改变
  • 当宽度达到80%时,按钮文字大小缩小为80%(通过更改字体大小),以便按钮适合。

部分内容已经通过在按钮模板中使用Viewbox来实现,但我应该通过在按钮中允许不同的文本宽度来增强组件。这意味着按钮应该没有MaxWidth,宽度应该是auto,MinWidth应该按控件本身的宽度缩放。缩小按钮的容器也不会缩放其子容器。也许我应该用自己的逻辑实现我自己的面板?另外一个问题是控件应该在按比例缩小时缩小按钮,而不是在放大时加宽按钮。

我真的不确定从哪里开始,经过一天不成功的谷歌搜索和原型制作后,我会感激每一点推进。

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

0 个答案:

没有答案