【问题标题】:How to set button size in WPF if shortcut key is used?如果使用快捷键,如何在 WPF 中设置按钮大小?
【发布时间】:2020-02-19 17:29:22
【问题描述】:

我在 wpf 中将 Margin="3" 和 Padding="5,1,5,1" 与我的按钮一起使用。我意识到如果我设置这样的快捷键:

<Button Content="_Decide types" Command="{Binding DecideTypesCommand}" 
                ToolTip="Select rows before pressing this button!"/>

然后这个按钮会增加。似乎 _ 使用了一些额外的填充。我能以某种方式控制它吗?

更新:

边距和填充在 App.xaml 中设置。例如。 “创建类型提示”按钮正确使用此设置。 “第一个”按钮明显大于“创建类型提示”按钮。如果我从“第一个”按钮中删除快捷方式,那么它的大小将是正常的。

更新 2: 在这里您可以看到一个 WrapPanel,在其下方是 App.xaml 中的相应样式。您可以在第二个图中看到第一个按钮更大,唯一的区别是 _。我试图在一个空项目中重新创建问题,但是两个按钮的大小相同。

    <WrapPanel>
            <Button Content="_Decide types"/>
            <Button Content="Decide types"/>               
    </WrapPanel>


    <Style TargetType="Button">
        <Setter Property="Margin" Value="3"/>
        <Setter Property="Padding" Value="5,1"/>
        <Setter Property="VerticalAlignment" Value="Center"/>
    </Style>

【问题讨论】:

  • 请更具体地说明到底出了什么问题,并且请使用重现问题的代码更新您的问题。仅使用您发布的 XAML,我看不出使用 _ 的按钮和不使用的按钮之间有任何重大区别。
  • 我也看不到任何东西。您说您设置了边距和填充,但您的代码没有显示这一点。按钮大小会导致什么问题?窗口的其余部分有一些错误安排?
  • 如果您在谈论第一行,看起来您的文本框元素上有一些边距,导致整行拉伸。删除边距或设置按钮 VerticalAlginment=Center 应该会有所帮助。
  • @ghord 我已经尝试过 VerticalAlginment=Center,请参阅更新 2
  • 使用 Live Visual Tree 查看两个按钮的构造方式是否有所不同。也许一个是用TextBlock 内置的

标签: wpf button


【解决方案1】:

即使使用更新 2,我也没有得到与您相同的结果。如果无法访问您的所有 XAML 和样式,就无法判断可能导致此问题的原因。

话虽如此,我建议您标准化按钮的高度,以便它们在您的应用中保持一致。由于您已经有一个隐式的Button 样式,您可能需要为Height 属性添加一个setter。

类似这样的:

<Style TargetType="Button">
    <Setter Property="Margin" Value="3"/>
    <Setter Property="Padding" Value="5,1"/>
    <Setter Property="Height" Value="24"/> <-- whatever looks good for your app
</Style>

【讨论】:

    【解决方案2】:

    我意识到有一种样式处于活动状态(不在 App.xaml 中),见下文。如果我删除这种样式,那么带有和不带有快捷方式的按钮之间的大小差异就会消失。我不知道这是如何连接到 TextBlock 样式的。

    感谢您的提示。

    <Window.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="Margin" Value="3"/>
        </Style>
    </Window.Resources>
    

    【讨论】:

      猜你喜欢
      • 2020-02-23
      • 2013-02-21
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 2011-03-15
      相关资源
      最近更新 更多