如何使按钮的宽度自动调整按钮的文本?

时间:2009-09-11 07:16:37

标签: .net wpf styles

我目前正在这样做,但我做错了什么:):

   <Style TargetType="{x:Type Button}">
      <Setter Property="MinWidth" Value="90" />
      <Setter Property="Width" Value="Auto" />
   </Style>

我希望按钮具有一些最小宽度,但也要扩展其宽度以适合按钮的文本。

3 个答案:

答案 0 :(得分:16)

您需要做的是将Horizo​​ntalAlignment属性设置为Center(或Right或Left)。按钮必须由包含的面板拉伸。

   <Style TargetType="{x:Type Button}">
      <Setter Property="MinWidth" Value="90" />
      <Setter Property="HorizontalAlignment" Value="Center" />
   </Style>

答案 1 :(得分:2)

如果设置HorizontalAlignment无效,请检查您是否未设置Width - 这会阻止按钮调整大小。一个方便的技巧是将Width属性设置为NaN..NaN,具体取决于应用程序的配置(这不会引发编译错误)。

答案 2 :(得分:1)

如果您只设置MinWidth of button,如果您的文字宽度大于最小宽度,它将自动展开,但相反情况下按钮将与您的最小宽度相同,

<Style TargetType="{x:Type Button}">
      <Setter Property="MinWidth" Value="90" />
</Style>

足以存档到所需的结果