Reputation: 34099
I want to use scrollbar on datagrid. Look at following code:
<UserControl x:Class="CustomCopyNas.UserControls.FolderControl"
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="300" Width="700">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<ScrollViewer>
<DataGrid Grid.Row="0" ItemsSource="{Binding Folders, Mode=TwoWay}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Path">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox PreviewMouseDown="UIElement_OnPreviewMouseDown" Text="{Binding Path}" IsReadOnly="True"></TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</Grid>
</UserControl>
I try to wrap datagrid into ScrollViewer, but this does not work. What i have to do, when i want to enable scrollViewer in my datagrid, how can i do that?
Upvotes: 0
Views: 81
Reputation: 354
Many functions of DataGrid can be automated for example scrolling. to do this you can use HorizontalScrollBarVisibility and VerticalScrollBarVisibility.
<UserControl x:Class="CustomCopyNas.UserControls.FolderControl"
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="300" Width="700">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<DataGrid HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Grid.Row="0" ItemsSource="{Binding Folders, Mode=TwoWay}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Path">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox PreviewMouseDown="UIElement_OnPreviewMouseDown" Text="{Binding Path}" IsReadOnly="True"></TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
Upvotes: 0
Reputation: 69987
You can add ScrollBar
s to your DataGrid
without adding a ScrollViewer
. You can make ScrollBar
s appear using the ScrollViewer.HorizontalScrollBarVisibility
and ScrollViewer.VerticalScrollBarVisibility
Attached properties:
<DataGrid ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.VerticalScrollBarVisibility="Visible" />
Upvotes: 2