【问题标题】:ScrollViewer doesn't work when uielements have margin当 uielements 有边距时,ScrollViewer 不起作用
【发布时间】:2013-07-26 15:15:24
【问题描述】:

我的问题是ScrollViewer 仅在鼠标光标悬停在文本块之一或任何其他UIElement 时滚动。当光标位于边缘空间(图像中以红色显示)时,滚动将被忽略。

在这里您可以看到在 Silverlight 5 中创建的示例:

我尝试使用Grid 代替StackPanel,但没有成功。将边距更改为填充似乎效果更好,但我的控件上还有其他元素有边距,如果可能,我想使用边距。
我试过在这里和谷歌搜索,但似乎没有人有同样的问题。

为什么这不起作用?

这是一个演示该行为的示例代码:

<UserControl x:Class="cwtest.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">
<UserControl.Resources>
    <Style TargetType="TextBlock">
        <Setter Property="Margin" Value="30"></Setter>
    </Style>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White">
    <ScrollViewer Height="300" Width="500">
        <StackPanel>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
            <TextBlock Text="Text Text Text Text Text Text Text Text Text Text Text Text Text Text "></TextBlock>
        </StackPanel>
    </ScrollViewer>
</Grid>
</UserControl>

【问题讨论】:

    标签: silverlight xaml silverlight-5.0 scrollviewer uielement


    【解决方案1】:

    它只需要一些东西来使其命中测试可见,这很容易添加Background="Transparent" 之类的;

    <ScrollViewer Height="300" Width="500" Background="Transparent">
    

    如果需要,也可以输入背景颜色或其他内容。我知道看起来很弱智,但这就是你所需要的。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 2017-12-06
      • 1970-01-01
      • 2013-08-22
      相关资源
      最近更新 更多