Hallo,
ich möchte in einem UserControl mehrere Tabellen untereinander anzeigen. Da die Tabellen manchmal größer als das Fenster sind habe ich die in einem Scrollviewer eingebunden.
Soweit funktioniert auch alles, bis auf das Scrollen mit dem Mausrad bzw. das die Pfeiltasten mit der Tastatur.
Hier ist mein Code.
<UserControl x:Class="Test"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<StackPanel>
<ScrollViewer CanContentScroll="True" MouseWheel="UIElement_OnMouseWheel">
<StackPanel x:Name="ResultStackPanel" MouseWheel="ResultStackPanel_OnMouseWheel">
<TextBlock Text="Result" Style="{StaticResource Heading}" />
<Grid Height="auto">
<Label Content="Information about result" Margin="0,15,10,0"/>
<DataGrid x:Name="ResultInfo" Height="auto" ColumnWidth="*"/>
</Grid>
<Grid Height="auto">
<Label Content="Result" Margin="0,15,10,0"/>
<DataGrid x:Name="Result" Height="auto" ColumnWidth="*"/>
</Grid>
<Grid Height="auto">
<WrapPanel Margin="0,5,0,0" Height="auto">
<Button x:Name="Export" Style="{StaticResource IconExport}" />
<Button x:Name="Print" Style="{StaticResource IconPrint}" />
<Button x:Name="Show" Style="{StaticResource IconShow}" />
</WrapPanel>
</Grid>
</StackPanel>
</ScrollViewer>
</StackPanel>
</UserControl>
Hallo Create,
DataGrids haben selbst einen ScrollViewer, weswegen sie MouseWheel Events schlucken sobald sie den Fokus haben (Vermutung).
Hier wird das Problem ebenfalls besprochen und ein manuelles (im Code) Scrollen vorgeschlagen:
<StackPanel x:Name="ResultStackPanel" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
ScrollViewer scv = (ScrollViewer)sender;
scv.ScrollToVerticalOffset(scv.VerticalOffset - e.Delta);
e.Handled = true;
}
Lg, XXX
So ganz rund läuft das Scrollen noch nicht. 😦
Wenn ich mit dem Mausrad scrolle, springt er zum nächsten Label.
Ist das auch eine Sache des Focus?