c# - WPF 默认按钮未按预期工作

标签 c# wpf xaml

我的表单上有以下一组控件:

enter image description here

它们每个都是单独的用户控件,并且按钮设置为 IsDefault="True"

在“快速搜索”文本框中键入内容并按 Enter 键时,焦点会从此控件跳转到“CDV 检查”上的“...”按钮。

enter image description here

这怎么可能?我是否遗漏了某些内容,或者这是 WPF 中的问题?

谢谢

最佳答案

您可以使用样式触发器来实现此目的,请查看下面的示例 xaml。如果您愿意,您可以移动资源通用的样式。

<GroupBox Header="GroupBox1"
          Height="100"
          HorizontalAlignment="Left"
          Margin="35,49,0,0"
          Name="GroupBox1"
          VerticalAlignment="Top"
          Width="247">
  <Grid>
    <TextBox Height="23"
             HorizontalAlignment="Left"
             Margin="10,30,0,0"
             x:Name="TextBox1"
             VerticalAlignment="Top"
             Width="120" />

    <Button Content="Button1"
            Height="23"
            HorizontalAlignment="Left"
            Margin="136,29,0,0"
            Name="Button1"
            VerticalAlignment="Top"
            Width="75">
      <Button.Style>
        <Style  TargetType="Button">
          <Style.Triggers>
            <DataTrigger Binding="{Binding ElementName=TextBox1, Path=IsFocused }"
                         Value="True">
              <Setter Property="IsDefault"
                      Value="True"></Setter>
            </DataTrigger>
          </Style.Triggers>
        </Style>
      </Button.Style>
    </Button>
  </Grid>
</GroupBox>
<GroupBox Header="GroupBox2"
          Height="98"
          HorizontalAlignment="Left"
          Margin="35,155,0,0"
          Name="GroupBox2"
          VerticalAlignment="Top"
          Width="247">
  <Grid>
    <TextBox Height="23"
             HorizontalAlignment="Left"
             Margin="10,29,0,0"
             x:Name="TextBox2"
             VerticalAlignment="Top"
             Width="120" />
    <Button Content="Button"
            Height="23"
            HorizontalAlignment="Left"
            Margin="136,29,0,0"
            Name="Button2"
            VerticalAlignment="Top"
            Width="75">
      <Button.Style>
        <Style  TargetType="Button">
          <Style.Triggers>
            <DataTrigger Binding="{Binding ElementName=TextBox2, Path=IsFocused }"
                         Value="True">
              <Setter Property="IsDefault"
                      Value="True"></Setter>
            </DataTrigger>
          </Style.Triggers>
        </Style>
      </Button.Style>
    </Button>
  </Grid>

关于c# - WPF 默认按钮未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14457187/

相关文章:

wpf - 如何使用 ReactiveUI 实现倒数计时器?

silverlight - 使用 VisualStateManager 按下时更改按钮的背景图像

c# - 如何根据用户角色操作 WPF GUI

c# - Web 应用程序中基于文化的 ToString() 方法

c# - WPF - TreeView 隐藏展开图标(箭头)

WPF:将数据触发器绑定(bind)到属性 "Ischecked"时出现复选框问题

c# - 基于 Windows 8 XAML 的游戏中的键盘处理

c# - Windows Phone 8 在应用程序关闭时显示 MessageBox(停用)

c# - 如果包含文本,ListView 获取索引

c# - 服务和服务层