【发布时间】:2019-01-03 18:31:57
【问题描述】:
1- 创建 wpf 应用程序。
2- 将三个 WPF 窗口添加到项目中,分别为 Window1、Window2 和 Window3
3- 将以下 xaml 代码复制并粘贴到 MainWindow。
<Grid>
<Expander VerticalAlignment="Bottom" HorizontalAlignment="Left" ExpandDirection="Up" Background="Gold" >
<Expander.Header>
<TextBlock Text="Menu"/>
</Expander.Header>
<StackPanel Width="180">
<Button x:Name="Button1" Height="25" Content="Button1"/>
<Button x:Name="Button2" Height="25" Content="Button2"/>
<Button x:Name="Button3" Height="25" Content="Button3"/>
</StackPanel>
</Expander>
</Grid>
</Window>
4- 将以下 vb.net 代码复制并粘贴到 MainWindow 后面的代码中。
Class MainWindow
Private Sub MainWindow_KeyDown(sender As System.Object, e As System.Windows.Input.KeyEventArgs) Handles MyBase.KeyDown
If e.Key = Key.F1 Then
Dim myWindow1 As New Window1()
myWindow1.Show()
End If
If e.Key = Key.F2 Then
Dim myWindow2 As New Window2()
myWindow2.Show()
End If
If e.Key = Key.F3 Then
Dim myWindow3 As New Window3()
myWindow3.Show()
End If
End Sub
End Class
C# 代码在这里
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if ((e.Key == Key.F1))
{
Window1 myWindow1 = new Window1();
myWindow1.Show();
}
if ((e.Key == Key.F2))
{
Window2 myWindow2 = new Window2();
myWindow2.Show();
}
if ((e.Key == Key.F3))
{
Window3 myWindow3 = new Window3();
myWindow3.Show();
}
}
}
5- 运行这个项目,然后展开那个Expander,然后按 F2,然后关闭 Window2。
我的问题:
我不想在 Expander Header 边缘 中看到虚线,您可以在此处看到:https://prnt.sc/m2oi2n
注意:我尝试了以下代码,但它们不起作用。
IsTabStop="False" Focusable="False" FocusVisualStyle="{x:Null}"
【问题讨论】:
-
WPF 应用程序中的 Handles 子句?
-
这是错的吗?
Private Sub MainWindow_KeyDown(sender As System.Object, e As System.Windows.Input.KeyEventArgs) Handles MyBase.KeyDown -
WPF 默认代码看起来像
private void Window_KeyDown(sender Object, e KeyEventArgs)和 XAMLKeyDown="Window_KeyDown"如果你的工作我猜它没有错。 -
上面的C#代码是从vb.net转换而来的。我是 vb.net 专家,但我对 C# 一无所知。
-
在 vb.net
Private Sub Window_KeyDown(sender As Object, e As KeyEventArgs)在 XAMLKeyDown="Window_KeyDown"