ScrollViewer контролы выходят за рамки границ панели C# WPF

Рейтинг: 0Ответов: 0Опубликовано: 19.05.2023

У меня есть панель 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>

Ответы

Ответов пока нет.