首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Silverlight 3- TreeView未获得焦点

Silverlight 3- TreeView未获得焦点
EN

Stack Overflow用户
提问于 2009-06-04 13:38:22
回答 1查看 907关注 0票数 0

我有一个TreeView,其中包含一个绑定到可观察集合的分层数据模板。当集合加载完成后,我运行一些代码来选择特定的TreeViewItem,然后将焦点放到TreeView上。其思想是用户应该能够使用箭头键在TreeView中滚动条目。填充TreeView时,它看起来具有焦点,但箭头键不会滚动选择。如果随后在任意位置单击TreeView,则箭头键将起作用,这表明TreeView实际上没有焦点。相关代码为:

代码语言:javascript
复制
Dispatcher.BeginInvoke(delegate
            {
                TreeViewAutomationPeer trvAutomation =
                (TreeViewAutomationPeer)TreeViewAutomationPeer.CreatePeerForElement(TreeViewIndex);

                IScrollProvider scrollingAutomationProvider =
                    (IScrollProvider)trvAutomation.GetPattern(PatternInterface.Scroll);
                IndexEntry highScoreEntry = _currentIndexViewModel.HighScoreEntry;
                TreeViewItem myItem = TreeViewIndex.ContainerFromItem(highScoreEntry);
                TreeViewIndex.Focus();
                myItem.IsSelected = true;
                if (scrollingAutomationProvider.HorizontallyScrollable)
                    scrollingAutomationProvider.SetScrollPercent(0, scrollingAutomationProvider.VerticalScrollPercent);
                TreeViewIndex.Focus();
            });

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2009-08-26 13:51:47

我用xaml编写了以下代码:

代码语言:javascript
复制
<ScrollViewer Name="_treeScroll">
             <controls:TreeView x:Name="_tree"/>
</ScrollViewer>

当我想扩展一些treeItem时。我运行这个

代码语言:javascript
复制
private void ExpandTreeViewItem(TreeViewItem tvi)
        {
            tvi.IsSelected = true;
            tvi.IsExpanded = true;
            tvi.UpdateLayout();
            _treeScroll.ScrollIntoView(tvi);
        }

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/950653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档