ScrollViewer контролы выходят за рамки границ панели C# WPF
У меня есть панель Grid В первых Row у меня идет Rectangle он используется как фон. Далее в последней Row я создаю ScrollViewer с панелью Grid для прокрутки элементов панели, которая содержит в себе другие панели grid. На скриншоте видно что контролы вылазят за границу Rectangle. Подскажите как ограничить контролы, чтобы они были в рамках Rectangle
Код:
<Window x:Class="WpfApp1.MainWindow"
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"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<!--Команды-->
<Grid Grid.Column="1" Grid.Row="1" x:Name="GridComands" Grid.RowSpan="5" Margin="8, 11 ,0,0" Visibility="Visible" ClipToBounds="True">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="15"/>
</Grid.RowDefinitions>
<Rectangle Grid.Column="0" Grid.Row="0" ClipToBounds="True" Grid.RowSpan="12" Stroke="#EBEBEB" MaxHeight="560" Fill="#FFFFFF" RadiusX="4" RadiusY="4" Margin="0,9,31,15"/>
<TextBlock Margin="15,18,0,0" Grid.Row="1" FontSize="15"><Run Text="Команды"/></TextBlock>
<Rectangle Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="3" Stroke="#EBEBEB" RadiusX="0.5" RadiusY="0.5" Margin="0,10,31,0" />
<ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Row="3" Grid.RowSpan="8" ClipToBounds="True">
<Grid ClipToBounds="True">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="20"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25*"/>
<ColumnDefinition Width="27*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<!--Предупреждения-->
<Grid x:Name="GridPred" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<CheckBox x:Name="CbPred" IsChecked="{Binding Pred, Mode=TwoWay}" DataContext="CommandDB" Grid.Column="0" Grid.Row="0" Margin="20,0,0,0" Padding="5,2,0,0" Background="Transparent" FontSize="14" Content="/pred - предупреждения"/>
<Button x:Name="BtnPred" Grid.Column="1" Width="70" Height="30" Grid.Row="0" Margin="200,-0,0,0" Click="BtnPred_Click"/>
<Rectangle Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="3" Stroke="#EBEBEB" RadiusX="0.5" RadiusY="0.5" Margin="0,8,31,5" />
<Grid x:Name="GridPredPanel" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Margin="5,8,0,0" Grid.Row="0" Grid.Column="1" FontSize="15"><Run Text="Количество предупреждений"/></TextBlock>
<TextBox Padding="5,4,0,0" x:Name="PredCount" Height="30" FontSize="14" BorderBrush="#A8A8A8" Grid.Row="1" Margin="5,0,51,23" Grid.Column="1"/>
<TextBlock Margin="20,8,51,0" Grid.Row="0" Grid.Column="0" FontSize="15"><Run Text="Текст сообщения"/></TextBlock>
</Grid>
</Grid>
<!--Мут-->
<Grid x:Name="GridMut" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<CheckBox x:Name="CbMut" IsChecked="{Binding Pred, Mode=TwoWay}" DataContext="CommandDB" Grid.Column="0" Grid.Row="0" Margin="20,0,0,0" Padding="5,2,0,0" Background="Transparent" FontSize="14" Content="/mut - мут"/>
<Button x:Name="BtnMut" Grid.Column="1" Width="70" Height="30" Grid.Row="0" Margin="200,-0,0,0" Click="BtnMut_Click"/>
<Rectangle Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="3" Stroke="#EBEBEB" RadiusX="0.5" RadiusY="0.5" Margin="0,8,31,5" />
<Grid x:Name="GridMutPanel" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Visibility="Collapsed">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Margin="5,8,0,0" Grid.Row="0" Grid.Column="1" FontSize="15"><Run Text="Время мута"/></TextBlock>
<Grid Margin="5,0,51,23" Grid.Row="1" Height="30" Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<TextBox x:Name="MutBorder" Grid.Column="0" MinHeight="25" TextAlignment="Left" Padding="4" FontSize="14" />
<TextBox x:Name="MutCount" Grid.Column="0" Padding="5,8,0,0" Margin="0,-4,80,6" BorderBrush="Transparent" Background="Transparent" FontSize="14" />
<ComboBox x:Name="ComboBoxMutType" DataContext="CommandDB" Text="{Binding ComboBoxMutType}" SelectedIndex="0" MaxWidth="60" Padding="12,5,0,0" Margin="220,0,0,0">
<TextBlock TextAlignment="Center"><Run Text="мин"/></TextBlock>
<TextBlock TextAlignment="Center"><Run Text="часы"/></TextBlock>
</ComboBox>
</Grid>
<TextBlock Margin="20,8,51,0" Grid.Row="0" Grid.Column="0" FontSize="15"><Run Text="Текст сообщения"/></TextBlock>
</Grid>
</Grid>
<!--Thanks-->
<Grid x:Name="GridThanks" Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="3">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<CheckBox x:Name="CbThanks" IsChecked="{Binding Pred, Mode=TwoWay}" DataContext="CommandDB" Grid.Column="0" Grid.Row="0" Margin="20,0,0,0" Padding="5,2,0,0" Background="Transparent" FontSize="14" Content="/thanks - благодарность"/>
<Button x:Name="BtnThanks" Grid.Column="1" Width="70" Height="30" Grid.Row="0" Margin="200,-0,0,0" Click="BtnThanks_Click"/>
<Rectangle Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="3" Stroke="#EBEBEB" RadiusX="0.5" RadiusY="0.5" Margin="0,8,31,5" />
<Grid x:Name="GridThanksPanel" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Visibility="Collapsed">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Margin="20,8,51,0" Grid.Row="0" Grid.Column="0" FontSize="15"><Run Text="Текст сообщения"/></TextBlock>
</Grid>
</Grid>
<!--Complaint-->
<Grid x:Name="GridComplaint" Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="3">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<CheckBox x:Name="CbComplaint" IsChecked="{Binding Pred, Mode=TwoWay}" DataContext="CommandDB" Grid.Column="0" Grid.Row="0" Margin="20,0,0,0" Padding="5,2,0,0" Background="Transparent" FontSize="14" Content="/compl - система жалоб"/>
<Button x:Name="BtnComplaint" Grid.Column="1" Width="70" Height="30" Grid.Row="0" Margin="200,-0,0,0" Click="BtnComplaint_Click"/>
<Rectangle Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="3" Stroke="#EBEBEB" RadiusX="0.5" RadiusY="0.5" Margin="0,8,31,5" />
<Grid x:Name="GridComplaintPanel" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Margin="20,8,51,0" Grid.Row="0" Grid.Column="0" FontSize="15"><Run Text="Текст сообщения"/></TextBlock>
<TextBlock Margin="5,8,0,0" Grid.Row="0" Grid.Column="1" FontSize="15"><Run Text="После скольки жалоб уведомлять"/></TextBlock>
<TextBox Padding="5,4,0,0" x:Name="ComplaintCount" Height="30" FontSize="14" BorderBrush="#A8A8A8" Grid.Row="1" Margin="5,0,51,23" Grid.Column="1"/>
</Grid>
</Grid>
<!--Конец коменд-->
</Grid>
</ScrollViewer>
</Grid>
</Grid>
</Window>
Источник: Stack Overflow на русском