Silverlight 4中TreeView的滚动行为

时间:2012-11-26 08:47:03

标签: silverlight treeview scroll

我是SilverLight 4的新手,我遇到了TreeView控件行为的问题。

我希望能够在TreeView中垂直滚动,但滚动仅在我将鼠标放在项目上时才有效。滚动条是可见的,它与它完美配合,但是当我的鼠标在TreeView内而不在任何TreeView项上时,TreeView将不会滚动。有没有什么办法解决这一问题?或者,如果有人知道任何免费或专有控制,我很乐意知道。

http://s14.postimage.org/ak2hrz135/Tree_View_Problem.jpg

注意:将TreeView放置在ScrollingViewer中可以正常工作,但它会混淆TreeView的样式。另外,如果可能的话,我也不想使用ScrollViewer。

由于

以下是有人想要试用的代码:

<UserControl x:Class="TreeViewScrollingTest.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400"xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">

<Grid x:Name="LayoutRoot" Background="White">
    <sdk:TreeView x:Name="treeView1" Height="200">
        <sdk:TreeViewItem Header="Header 001">
            <TextBlock>Test 001</TextBlock>
        </sdk:TreeViewItem>
        <sdk:TreeViewItem  Header="Header 002">
            <TextBlock>Test 002</TextBlock>
        </sdk:TreeViewItem>
        <sdk:TreeViewItem  Header="Header 003">
            <TextBlock>Test 003</TextBlock>
        </sdk:TreeViewItem>
        <sdk:TreeViewItem  Header="Header 004">
            <TextBlock>Test 004</TextBlock>
        </sdk:TreeViewItem>
        <sdk:TreeViewItem  Header="Header 005">
            <TextBlock>Test 005</TextBlock>
        </sdk:TreeViewItem>
        <sdk:TreeViewItem  Header="Header 006">
            <TextBlock>Test 006</TextBlock>
        </sdk:TreeViewItem>
        <sdk:TreeViewItem  Header="Header 007">
            <TextBlock>Test 007</TextBlock>
        </sdk:TreeViewItem>
        <sdk:TreeViewItem  Header="Header 008">
            <TextBlock>Test 008</TextBlock>
        </sdk:TreeViewItem>
        <sdk:TreeViewItem  Header="Header 009">
            <TextBlock>Test 009</TextBlock>
        </sdk:TreeViewItem>
        <sdk:TreeViewItem  Header="Header 010">
            <TextBlock>Test 010</TextBlock>
        </sdk:TreeViewItem>
    </sdk:TreeView>
</Grid>
</UserControl>

2 个答案:

答案 0 :(得分:0)

使用Lee Campbell博客文章的提示:http://leecampbell.blogspot.ch/2009/01/horizontal-stretch-on-treeviewitems.html

我修改了默认列定义,现在TreeViewItems至少与TreeView的整个宽度相关。由于TreeView控件实现了我的鼠标光标在TreeViewItems上,滚动问题也消失了。

答案 1 :(得分:0)

我已经在我的博客上发布了一个解决方案,这个简单的解决方案不需要对模板进行任何干预:

http://shemesh.wordpress.com/2013/12/31/silverlight-treeview-scroll-behavior/