作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下代码片段来定义弹出窗口。
代码片段[XAML]:
<Grid Margin="0,0,0,0" Height="40">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="19" />
<ColumnDefinition Width="19" />
</Grid.ColumnDefinitions>
<TextBlock HorizontalAlignment="Stretch"
Text="HeaderText"
FontWeight="Bold"
TextTrimming="CharacterEllipsis"
VerticalAlignment="Center"/>
<Grid Grid.Column="1">
<Button Width="19" x:Name="FilterButton" Click="FilterButton_OnClick" Content="^"/>
<Popup x:Name="FilterPanel" StaysOpen="False" >
<Border >
<Grid>
<TextBlock x:Name="tblTitle" Text="PopUp Header" Background="Red" Grid.Column="0" Grid.Row="0"/>
</Grid>
</Border>
</Popup>
</Grid>
<TextBox Text="Test" Grid.Column="2"/>
</Grid>
我使用以下代码片段打开弹出窗口
代码片段[C#]:
private void FilterButton_OnClick(object sender, RoutedEventArgs e)
{
this.FilterPanel.IsOpen = true;
}
场景:
使用按钮单击打开弹出窗口。
按 Tab。
焦点移动到文本框。
实际行为:
弹出窗口不会关闭。
预期行为:
应该关闭弹出窗口。
为了您的引用,我附上了简单的示例。请您对此进行任何调查并提供指导以归档我的要求。提前致谢。
最佳答案
这很奇怪。我把你的代码粘贴到一个新的项目窗口中,每次都关闭弹出窗口。但是我记得当我想创建自己的自定义控件时遇到了类似的问题。我知道其中一件事是将 StaysOpen 设置为 false。我看你已经做到了。另一种是尝试在初始化 FilterPanel 时设置以下内容
FilterPanel.IsMouseCaptureWithinChanged +=FilterPanel_IsMouseCaptureWithinChanged;
void FilterPanel_IsMouseCaptureWithinChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (!(bool)e.NewValue)
{ FilterPanel.IsOpen = false; }
}
正如我所说,当我复制您的代码时,我的代码运行完美,所以我无法测试它,但上面的代码应该可以运行。
关于c# - 弹出窗口不关闭事件 Stayopen 设置为 False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17540314/
我使用以下代码片段来定义弹出窗口。 代码片段[XAML]:
我是一名优秀的程序员,十分优秀!