【问题标题】:Set Focus on a Sub Widget TextBox in XAML在 XAML 中的子小部件文本框上设置焦点
【发布时间】:2012-07-28 16:55:50
【问题描述】:

如何将默认焦点设置在当前视图中的子小部件 TextBox 上?

<StackPanel Orientation="Vertical" FocusManager.FocusedElement="{Binding ElementName=SomeWidget.UnderTextBoxName}">
   <MyWidget x:Name="SomeWidget" Text="A" />
   <TextBox x:Name="TxtB" Text="B" />
</StackPanel>

...认为这可能有效,但没有运气?

【问题讨论】:

    标签: wpf xaml textbox focus


    【解决方案1】:

    使用FocusedElement="{x:Reference Name=UnderTextBoxName}"。无需绑定。

    <StackPanel Orientation="Vertical" >
            <MyWidget x:Name="SomeWidget" Text="A" FocusManager.FocusedElement="{x:Reference Name=UnderTextBoxName}"/>
            <TextBox x:Name="TxtB" Text="B" />
    </StackPanel>
    

    我希望这会有所帮助。

    【讨论】:

    • 抱歉,我并没有试图专注于 TxtB,我想我将它包含在其中会让人感到困惑。我的 MyWidget 里面有几个小部件,其中一个是带有 x:name=UnderTextBoxName 的 TextBox - 我怎样才能让焦点开始放在那个上?
    • 这只是一个例子,如果你愿意,那么只需设置FocusedElement="{x:Reference Name=UnderTextBoxName}" 我已经更新了答案。
    • 我认为如果我有多个 MyWidgets 并且下面有多个带有 x:name=UnderTextBoxName 的 TextBox,这将不起作用?是否可以做一些类似于 SomeWidget.UnderTextBoxName 的引用?
    • 好的,如果是这样,则仅将FocusManager.FocusedElement="{x:Reference Name=UnderTextBoxName}" 应用于您要为其设置 UnderTextBoxName 焦点的 MyWidget 之一(不要将其应用于其他 Widget)。我已经更新了答案。
    猜你喜欢
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 2023-03-26
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多