Kesinlikle en yaygın WPF gereksinimlerinden biri olması gerekenler konusunda şaşırıyorum. Ben this question okudum ama çözüm benim uygulama çalışmıyor. İşte ControlTemplate İçinde Kontrol Üzerine Odaklama Ayarı (Bölüm 2)
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfTest">
<Style TargetType="{x:Type local:CustomControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomControl}">
<Border>
<TextBox x:Name="myTextBox" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsFocused"
Value="True">
<Setter Property="FocusManager.FocusedElement"
Value="{Binding ElementName=myTextBox}" />
<Setter TargetName="myTextBox"
Property="Background"
Value="Green" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
CustomControl bir örneğini içeren Pencere için biçimlendirme var: Burada
lookless kontrolü için biçimlendirme var burada
<Window x:Class="WpfTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfTest"
Title="Window1" Height="300" Width="300">
<local:CustomControl x:Name="CCtl" />
</Window>
Ve kod arkasında:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
Loaded += (RoutedEventHandler)delegate { CCtl.Focus(); };
}
}
Window1 yüklendiğinde, metin kutusu yeşile döner. ger çalışır) ancak odak metin kutusu değil, CCtl ile kalır. Kuşkusuz bu Aşağıdaki veri hatasını gösteren çıkışı ile ilgisi var:
Cannot find source for binding with reference 'ElementName=myTextBox'. BindingExpression:(no path); DataItem=null; target element is 'CustomControl' (Name='CCtl'); target property is 'FocusedElement' (type 'IInputElement').
ben bu hata göründüğünü neden hiçbir fikrim yok. Teşekkürler minnetle alınan herhangi bir işaretçi.
Yup, işte bu - gerçekten çok teşekkürler. –