コントロールテンプレートからUIを取得したウィンドウがある場合、キーボードフォーカス(「フォーカスビジュアル」)を示す点線は表示されません。コントロールテンプレートではなく直接コンテンツを使用して再実装すると、フォーカスビジュアルが正常に動作します。コントロールテンプレートのあるウィンドウでフォーカス点線が表示されない
コントロールテンプレートを使用してフォーカスを視覚的に表示する方法を知っていますか?
私はもともとXAMLを使用していましたが、それを除外するためにC#でデモコードを作成しました。私はXAMLベースのソリューションにも満足しています。
Class1.csの
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
class Class1 : Window
{
public Class1()
{
Title = "Class1";
Height = 150;
Width = 300;
Template = new ControlTemplate() {
VisualTree = new FrameworkElementFactory(typeof(Template1))
};
}
class Template1 : StackPanel
{
public Template1()
{
Background = Brushes.White;
Children.Add(new TextBox());
Children.Add(new Button() { Content = "button 1" });
Children.Add(new Button() { Content = "button 2" });
}
}
}
Class2.cs
using System.Windows;
using System.Windows.Controls;
class Class2 : Window
{
public Class2()
{
Title = "Class2";
Height = 150;
Width = 300;
Content = new StackPanel
{
Children =
{
new TextBox(),
new Button() { Content = "button 1" },
new Button() { Content = "button 2" },
}
};
}
}
MainWindow.cs
私はメインウィンドウからカスタムウィンドウを立ち上げ...
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
(new Class1()).Show();
(new Class2()).Show();
}
}
グレート答えシャラダ文字、あなたはポイントを得ます! –
ありがとうございます!私はAdornerDecoratorが何のためにあるのか疑問に思いました。 – Vimes