- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 Window
上放置了 3 个控件在 WPF 中,每个控件包含一个或多个 TextBox
和 Button
, when a new control is selected I would like to change the IsDefault
到那个按钮。我目前正在做的是 TextBox
的 GotFocus
事件被触发,我更改我的 Button
至 IsDefault
.这是第一次工作,但是当我从一个控件更改为另一个控件,然后返回到第一个选定的控件时,第二个控件 IsDefault
仍然如此,当按下 enter 时,它会触发 Click
错误控件上的事件。
有没有办法清除所有IsDefault
我窗口上的属性或者什么是我当前执行此操作的更好解决方案?例如,请参见下图,当按下 enter 时 Button
用“...”触发而不是快速搜索。
XAML(更新)
<odc:OdcTextBox Text="{Binding AccountNumber, UpdateSourceTrigger=PropertyChanged}" MinWidth="100" Name="txtAccountNumber" Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" Margin="{Binding TextMargin}">
<odc:OdcTextBox.Buttons>
<Button IsDefault="{Binding ElementName=txtAccountNumber, Path=IsKeyboardFocusWithin}" Width="30" Style="{StaticResource DionysusButton}" x:Name="btnCdv" Content="...">
</Button>
</odc:OdcTextBox.Buttons>
</odc:OdcTextBox>
最佳答案
<Button IsDefault={Binding IsKeyboardFocusWithin, ElementName=ThisGroupBox} />
编辑:
您的代码略有不同,因为您为某些自定义控件提供了按钮。这些按钮的声明范围与它们最终所在的范围不同(即我假设它们最终位于 OdcTextBox 模板内的某处)。我怀疑这就是 WPF 找不到命名元素的原因,因为该元素是在外部作用域中命名的。
您可以尝试使用 RelativeSource
来查找父级 OdcTextBox
:
<Button IsDefault="{Binding IsKeyboardFocusWithin, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type odc:OdcTextBox}}}"
Width="30" Style="{StaticResource DionysusButton}" x:Name="btnCdv" Content="...">
关于c# - 删除 WPF IsDefault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20119630/
谁能更好地解释一下我吗? 只是阅读文档,我不太明白。 最佳答案 如果将 IsDefault 设置为 true,按钮将成为窗口的默认按钮,即,如果当前焦点不在任何接受 ENTER 键按钮单击事件的可聚焦
我的 Window 上放置了 3 个控件在 WPF 中,每个控件包含一个或多个 TextBox和 Button , when a new control is selected I would lik
我正在尝试获取与扩展关联的默认程序的图标。 这是我的代码: Intent intent = new Intent(Intent.ACTION_VIEW); MimeTypeMap mime = Mim
我有一个不是从 Button 派生的自定义按钮控件。我是否可以实现等效于 IsDefault 以便将调用与我的控件关联的命令。我希望这是一个附加属性,我可以添加到任何控件中,但据我所知它似乎不是。如果
I really don't know what the problem is! class RegisterController extends Controller { public fu
根据 commander.js自述文件,我可以这样指定默认命令: var program = ...; program ... .command('list', 'list packages
我找到了这个 link关于类似的问题,除了我的文本框增加了在焦点丢失后需要格式化的值。 用户在文本框中输入文本后,我想使用用户定义的掩码对其进行格式化。例如,如果掩码是“00000”,则约定是右对
我是一名优秀的程序员,十分优秀!