首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将焦点设置在作为ListBoxItem内容的UserControl上的TextBox

,可以通过以下步骤实现:

  1. 首先,确保ListBox的SelectionMode属性设置为Single,这样只能选择一个ListBoxItem。
  2. 在ListBoxItem的鼠标单击事件处理程序中,获取ListBoxItem的内容,并找到其中的UserControl。
  3. 在UserControl中找到TextBox控件,并调用其Focus()方法,将焦点设置在TextBox上。

下面是具体的代码示例:

代码语言:txt
复制
private void ListBoxItem_Click(object sender, RoutedEventArgs e)
{
    ListBoxItem clickedItem = sender as ListBoxItem;
    if (clickedItem != null)
    {
        UserControl itemContent = clickedItem.Content as UserControl;
        if (itemContent != null)
        {
            TextBox textBox = FindVisualChild<TextBox>(itemContent);
            if (textBox != null)
            {
                textBox.Focus();
            }
        }
    }
}

private T FindVisualChild<T>(DependencyObject parent) where T : DependencyObject
{
    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
    {
        DependencyObject child = VisualTreeHelper.GetChild(parent, i);
        if (child != null && child is T)
        {
            return (T)child;
        }
        else
        {
            T childItem = FindVisualChild<T>(child);
            if (childItem != null)
                return childItem;
        }
    }
    return null;
}

这样,当用户单击ListBox中的任何ListBoxItem时,对应的UserControl中的TextBox将会获得焦点。

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

深入浅出话命令

(5)设置命令关联:炮兵是不能单独战斗,就像炮兵设计之前需要侦察兵观察敌情、判断发射时机,射击后观测射击效果,帮助修正一样。...中输入内容之后,Button命令可执行状态下变为可用,此时单击按钮或者按Alt+C,TextBox就会被清空,效果如下图: ?...当捕捉到是Executed时候,就调用cb_Execute事件。 第三,因为CanExecute事件激发频率比较高,为了避免降低性能,处理完毕之后建议e.Handle设置为true。...第四,CommandBinding一定要设置命令目标的外围控件,不然无法捕捉CanExecute和Executed等路由事件。...实现这个方法时,我们这个方法唯一参数作为命令目标,如果目标是IView接口派生类则调用其Clear方法---显然我们已经把程序业务逻辑引入到了命令Execute方法中。

1.7K40
  • 《深入浅出WPF》——模板学习

    (简单讲,就是显示和功能难以拆分) WPF中,通过引入模板(Template)微软数据和算法内容”与“形式”解耦了。...这个UserControl由一个Monster类型实例背后支持,当设置这个实例时候,界面元素实例属性值显示各个控件里。...传统方法可能是创建一个UserControl并在TextBox外套上一个Border,然后还要声明一些属性和方法暴露封装在UserControlTextBox。...~~~~ 把DataTemplate应用在某个数据类型方法是设置DataTemplateDataType属性,并且DataTemplate作为资源时也不能带有x:Key标记。...ListViewView属性时,如果某一列使用TextBox作为CellTemplate,那么即使这列中TextBox被鼠标单击并获得了焦点ListView也不会把此项作为自己SelectedItem

    4.8K10

    WPF 控件放入到 UserControl 里获取 HwndSource 为空情况

    本文记录 WPF 控件放入到 UserControl 里,如果此 UserControl 没有被设置 Visibility 为可见过,那么放在此 UserControl控件获取不到 HwndSource...分别放入到 Grid 和 UserControl 里面, Grid 和 UserControl 设置为 Visibility="Collapsed" 不可见 Loaded 事件里面,分别从 TextBox1...如果将此 UserControl Visibility 先设置为 Visible 然后再设置为 Collapsed 值,那么 UserControl 里面的控件,依然可以拿到 HwndSource..."> 在后台代码,先设置 UserControl Visibility 属性,再等待一秒,获取 HwndSource 内容,如以下代码...内容 因此,如果发现从某个 Visual ,尝试获取 HwndSource 内容失败,可以看看此控件所在视觉树上是否被放入到 UserControl 里面,同时这个 UserControl 还没有被设置

    1.4K30

    Silverlight之ListBoxStyle学习笔记--ListBox版图片轮换广告

    ListBox是一个很有用控件,其功能直逼Asp.Net中Repeater,它能实现自定义数据项模板,纵向/横向排列Item(如果扩展一下实现自行折行,几乎就是SL版Repeater了--实际WrapPanel...每个控件默认样式/模板,都有N长,全凭记忆不太现实,我经验是如果需要定义某一个控件样式,直接用Blend先编辑副本,得到完整"样本",然后在此基础做些修改或删减,这样更可行。...:如果不进行数据绑定,即使定义了模板,最终也不会有内容,既然连内容都没有了,所以也谈不外观--即所谓数据驱动UI) 这里举一个ListBox例子: Xaml <UserControl xmlns...> 这段代码中,ListBox本身空空如也(除了几个样式和模板应用),最终呈现内容和外观,全部UserControl.Resource中定义了,运行后界面肯定是空,因为没有数据绑定,我们给它加上后端代码...大致思路:用style定义ListBoxItemsPanel,把默认纵向排列改成横向排列,然后结合Clip属性设置可视区(蒙板),让其左右移动即可。

    1K50

    《深入浅出WPF》学习笔记之深入浅出话Binding

    除了对象作为数据源外,还可以有很多选择,控件自己或自己容器或子集元素、集合作为ItemsControl数据源、XML作为TreeView或Menu数据源、把多个控件关联到一个“数据制高点”、甚至干脆不给...如把TextBoxText属性关联在SliderValue属性 <TextBox x:Name="textBox1" Text="{Binding...上述Slider示例中,TextBox输入一个值,然后按Tab键(TextBox丢失焦点),Slider手柄会自动跳到相应位置。...或者干脆没有Path   这是一种特殊情况——Binding源本身就是数据且不需要Path来指明   如string、int等基本类型,可以Path设置为"."...XAML中为外层StackPanelDataContext赋了值,内层TextBoxBinding只指定了Path,没有指定Source,这时TextBoxBinding会自动向UI元素树上层寻找可用

    5.6K10

    C# WPF MVVM开发框架Caliburn.Micro关于关于Actions⑤

    设置此属性会将ActionMessage“handler”放置与您声明属性节点相连可视树中。它还将DataContext设置为相同值,因为您通常希望这两个值相同。...Action.Target一个优点是可以将其设置为System.String,CM将使用该字符串从IoC容器中解析实例,并使用提供作为其键。...(根节点使用,如Window/UserControl/Page。) Bind.ModelWithoutContext 首先查看-Action.Target设置为指定实例。约定应用于视图。...(DataTemplate内部使用。) View.Model ViewModel First–定位指定VM实例视图并将其注入内容站点。...通过这些功能,您可以方便地访问常见上下文信息: $eventArgs EventArgs或输入参数传递给操作。注意:对于保护方法,这将是null,因为触发器实际没有发生。

    2.1K20

    开源C# WPF控件库--Newbeecoder.UI使用指南(三)

    开发项目中要显示一组数据且可以选择一项或多项时候,可以使用ListBox列表框。SelectionMode设置选择单项和多项,全选使用SelectAll属性进行设置。...ListBoxItem用于填充每一项列表数据。 要选择一个ListBoxItem列表框,设置IsSelected属性true。...默认情况下,HorizontalAlignment一个ListBoxItem设置为拉伸。StackPanel默认水平位置是Center。...如果您通过StackPanel设置ListBoxItemWidth属性,则应用面板默认值并且项目居中。...Demo下载: Newbeecoder.UI.zip 只要你有好看设计图,基本都可以用Newbeecoder.UI按设计图开发出来,下面演示开源控件库开发控件: 视频内容 ​ Newbeecoder.UI

    2.5K50

    WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”元素“ZZZ”范围内,另一范围内定义它时,已注册了名称。

    WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”元素“ZZZ”范围内,另一范围内定义它时,已注册了名称。...实际,这是一个用户控件,也就是继承自 UserControl 大家通常用来写界面的东西。...于是需要提醒大家注意: WPF 里,拥有直接 XAML 文件始终应该作为最终用户界面,不应该当作控件使用(不要试图在其他地方使用时还设置其 Content 属性); 如果你确实希望做控件,请继承自...至于以上 XAML 代码中我看到用是 来写样式,是因为踩到了当控件用另一个坑: 所有控件 XAML 中设置 Content 属性都将被使用时覆盖。... 里定义所有样式全部改到 /Themes/Generic.xaml 文件中。

    3.1K20

    Silverlight数据绑定IValueConverter学习笔记

    先回忆一下aspx中处理: aspx中,可以直接在后台定义一个变量,然后前台就可以用来将其"绑定"html控件,比如下面这样,实在是很方便: using System; namespace...> "/> 但到了Silverlight中,要想直接后台变量绑定到某个控件却是行不通...中内容并无变化,原因是:要想实现源与目标的数据自动关联更新,MyClass得实现INotifyPropertyChanged接口,我们把MyClass定义改成下面这样:  代码 public class...内容变成了456,达到预期效果了....,都是数据原封不动绑定并显示,如果我们希望绑定时,能对数据输出做一些变化,比如:代表性别的"1,0"输出时希望变成"男,女",该怎么办呢?

    93070
    领券