1-创建 wpf 应用程序。
2-将三个WPF Windows作为 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}"
答案 0 :(得分:0)
您看到的虚线矩形由扩展器默认控件模板中ToggleButton上的FocusVisualStyle定义。您可以通过右键单击控件(Visual Studio 2017)并选择“编辑模板”>“编辑副本”来克隆和编辑控件模板。然后更改ExpanderHeaderFocusVisual样式。