【发布时间】:2014-08-18 15:22:59
【问题描述】:
我有一个带有滚动查看器的堆栈面板。在 stackpanel 内我有一些网格,在网格内又有 stackpanels 和一些由 MahApps Metro 控制的图块。
如果我拖动滚动条,滚动查看器工作正常。但鼠标滚轮不起作用。可能是某些控制正在窃取鼠标滚轮动作,但我无法确定是哪一个。我试图在专注于滚动条的同时滚动鼠标滚轮。但它仍然无法正常工作。
<ScrollViewer x:Name="TS" Grid.Row="1" HorizontalAlignment="Stretch" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" CanContentScroll="True" PanningMode="HorizontalOnly" SnapsToDevicePixels="True" Background="Transparent">
<StackPanel x:Name="TilesPanel" VerticalAlignment="Top" HorizontalAlignment="Stretch" Orientation="Horizontal">
<StackPanel.Resources>
<Style TargetType="{x:Type Grid}">
<Setter Property="Margin" Value="0,50,0,0"/>
</Style>
</StackPanel.Resources>
<Separator Background="{x:Null}" Width="110"></Separator>
<Grid>
<StackPanel>
<StackPanel Orientation="Horizontal">
<StackPanel.Resources>
<Style TargetType="{x:Type Grid}">
<Setter Property="Margin" Value="10,0,0,0"/>
</Style>
</StackPanel.Resources>
<Grid Height="260">
<StackPanel>
<StackPanel.Resources>
<Style TargetType="{x:Type StackPanel}">
<Setter Property="Margin" Value="0,0,0,10"/>
</Style>
</StackPanel.Resources>
<StackPanel Width="247" Height="119">
<Custom:Tile x:Name="Mail" Margin="0" Width="auto" d:LayoutOverrides="Height">
<Image Stretch="Fill" Source="Res/AppTiles/Mail.png"/>
</Custom:Tile>
</StackPanel>
//and it goes on like this//
</grid>
</stackpanel>
<Separator Background="{x:Null}" Width="50"/>
</Grid>
</StackPanel>
</ScrollViewer>
网格会阻碍吗?或者有没有其他方法可以在 Horizontal Scrollviewer 中使用鼠标滚轮?我就是想不通。 请帮忙。
【问题讨论】:
-
似乎
Custom:Tile正在消耗鼠标滚轮事件。您能否发布一些可重现的样本,我们可能会尝试为您找到根本原因。 -
我已经询问了 MahApps 网站中创建该控件的开发人员。他们否认这个问题。而且我在另一个测试项目中尝试过,发现这些与鼠标滚轮动作无关。
-
你能发布一些屏幕吗?如果您可以发布工作示例,我们将不胜感激。
标签: c# scrollviewer mousewheel stackpanel wpf-4.0