我正在使用Microsoft Ribbon for WPF October 2010并且在RibbonControlGroup
内有3个按钮彼此相邻。左边和右边的控件是纯文本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)最适合与合适的黑客一起使用。
答案 0 :(得分:1)
看来你不能这样做。它的设计。
根据MSDN(here大约一半的页面):
相关功能区控件可以在RibbonControlGroup中组合在一起。调整控件组的大小时,会将一个RibbonControlSizeDefinition应用于RibbonControlGroup中的所有控件。 RibbonControlGroup位于RibbonGroup中,就像它是一个控件一样。
RibbonControlGroup中的所有控件共享相同的RibbonControlSizeDefinition。因此,在您的情况下,将为所有按钮添加图像。
如果您不想非常密切地粘贴所有控件,则可以使用RibbonGroup。这样,您可以使用不同的RibbonControlSizeDefinitions自定义每个按钮容器。