0
これは私のためには機能しません。ラジオボタンのフォーカスは、Tabキーを押したときにのみ機能します。誰かが修正する方法を知っていますか?FocusVisualStyle RadioButtonが動作しない
void SelectPaymentModeView_Loaded(object sender, RoutedEventArgs e)
{
this.radPaymentMode.Focus();
}
ラジオボタンの内容がテキストです...私はまたKeyboard.Focus(this.radPaymentMode)をしてみてください。
は、完全なコードを参照してください。キーボードがコントロールにタブに使用されている場合
PaymentMode[] modes = data[1] as PaymentMode[];
if (modes.Length > 0)
{
for (int i = 0; i < modes.Length; i++)
{
RadioButton rad = new RadioButton();
rad.Name = "radPayment" + i;
rad.GroupName = "PaymentModes";
rad.Content = modes[i].Name;
rad.DataContext = modes[i];
rad.Margin = new Thickness(110, 0, 0, 5);
rad.VerticalAlignment = System.Windows.VerticalAlignment.Center;
rad.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
Grid.SetRow(rad, 3 + i);
Grid.SetColumn(rad, 1);
gridPaymentModes.RowDefinitions.Insert(3, new RowDefinition());
gridPaymentModes.Children.Add(rad);
radPaymentModes.Add(rad);
if (!string.IsNullOrEmpty((this.DataContext as Order).Payment))
{
String paymentOrder = rad.Content as String;
if (paymentOrder.Equals((this.DataContext as Order).Payment))
{
rad.IsChecked = true;
}
}
rad.Checked += new RoutedEventHandler(rad_Checked);
}
radPaymentModes[0].Loaded += SelectPaymentModeView_Loaded;
}
void SelectPaymentModeView_Loaded(object sender, RoutedEventArgs e)
{
FocusManager.SetFocusedElement(FocusManager.GetFocusScope((sender as RadioButton)), (sender as RadioButton));
}
私のラジオボタンがフォーカスを持っています!しかし、彼は私のFocusVisualStyleを適用しませんでした。私がTabを押すと適用されますが、うまくいきません。 –
これは意図的なものです。ユーザーからのフォーカスのみが実際にキーボードからコントロールにフォーカスを移動します。あなたがそれを自分自身に強制したいなら、私が示したようなものが必要です。 – jschroedl
あなたが見せたコードは私のためにはうまくいかなかった! –