3

我是 SilverLight 4 的新手,我对 TreeView 控件的行为有疑问。

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

注意:将 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>
4

2 回答 2

0

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

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

于 2013-12-31T20:13:45.500 回答
0

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

我修改了默认列定义,现在 TreeViewItems 至少正确地拉伸到 TreeView 的整个宽度。现在滚动问题也消失了,因为 TreeView 控件意识到我的鼠标光标位于 TreeViewItems 上。

于 2012-11-28T10:32:47.080 回答