1

我在2010 年 10 月为 WPF 使用 Microsoft 功能区,并且在RibbonControlGroup. 左侧和右侧是纯文本RibbonToggleButton控件,中间是仅图像控件RibbonButton。按钮具有定义的宽度以匹配上面的行。

我的代码:

<r:RibbonControlGroup>
  <r:RibbonToggleButton Width="110" Label="Outgoing" IsChecked="True" />
  <!-- Padding and Height set to align the buttons/image -->
  <r:RibbonButton Width="30" Padding="5 0" Height="24" SmallImageSource="Images\Small\arrow_swap.png" />
  <r:RibbonToggleButton Width="110" Label="Incoming" />
</r:RibbonControlGroup>

问题是,一旦我将 应用SmallImageSource到中间按钮,另外两个就会获得图像间距,导致文本不再居中。这就是问题(1)。

因为我没有找到快速的解决方案,所以我尝试不通过添加中间按钮的图像SmallImageSource,而是通过添加它作为<Image>按钮的内容。但是,该按钮将保持为空。这就是问题(2)。

我的第三个解决方案是在左右按钮上也添加图像。不幸的是,图像和文本之间几乎没有边距,这看起来很丑陋。我尝试了几件事来扩大边距,比如在 . 中添加一个<Style TargetType="Image"><RibbonToggleButton.Resources>但是尽管编辑器接受它并在设计时显示间距,但边距在运行时又消失了。这就是问题(3)。

有人对这三个问题中的任何一个有适当的解决方案吗?我无法让它工作。问题的数量也是备选方案的偏好,(1) 最喜欢与适当的 hack 一起使用。

4

1 回答 1

1

看来你不能这样做。它的设计。

根据 MSDN(这里大约在页面的一半处):

相关的功能区控件可以在 RibbonControlGroup 中组合在一起。调整控件组的大小时,会将一个 RibbonControlSizeDefinition 应用于 RibbonControlGroup 中的所有控件。RibbonControlGroup 位于 RibbonGroup 中,就好像它是一个控件一样。

RibbonControlGroup 中的所有控件共享相同的 RibbonControlSizeDefinition。因此,在您的情况下,将为所有按钮添加图像。

如果您不想非常紧密地粘合所有控件,则可以改用 RibbonGroup。这样,您可以使用不同的 RibbonControlSizeDefinitions 自定义每个按钮容器。

于 2013-07-15T06:20:00.953 回答