Как предотвратить изменение размера элемента управления внутри шаблона ControlTemplate? - PullRequest
0 голосов
/ 19 марта 2019

Заранее извините, поскольку у меня возникли проблемы с попыткой придумать лучший способ донести мою проблему не слишком расплывчато в названии, но немного легче понять, когда я объясню контекст.

По сути, у меня есть поле изменяемого размера, состоящее из элементов управления Thumb с надписью над ним, которая помечает связанный с ним блок с подробным описанием того, что это такое.

Проблема здесь в том, что при изменении размера текстового блока также изменяется размер, но это происходит только тогда, когда я изменяю ширину поля. То же самое не происходит, когда я изменяю размер окна по высоте, но моя цель - не изменять его вообще.

Предварительный просмотр действия по изменению размера

Я понимаю, что, поскольку текстовый блок сгруппирован с элементом управления изменением размера внутри шаблона элемента управления, то имеет смысл для него наряду с другими элементами управления родственного элемента быть затронутым изменением размера, но я не понимаю, почему он работает только тогда, когда На ширину элемента влияет.

Моя цель здесь - найти способ сделать так, чтобы на ярлыки не влияло действие изменения размера, но чтобы оно оставалось с соответствующим ящиком в одно и то же время (в случае, если пользователь решит переместить ящик на другое положение)

Вот код для шаблона управления:

<!-- Designer Item Template-->
    <ControlTemplate x:Key="DesignerItemTemplate" TargetType="ContentControl">
        <Grid x:Name="DesignerGrid" DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}">
            <s:MoveThumb x:Name="MoveThumbAdorner" Template="{StaticResource MoveThumbTemplate}" Cursor="SizeAll"/>
            <Control Template="{StaticResource ResizeDecoratorTemplate}"/>
            <ContentPresenter x:Name="rectCP" Content="{TemplateBinding ContentControl.Content}"/>
            <Border x:Name="BoxLabelBorder" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="5,-35" Background="#EEEEEE" BorderBrush="Black" BorderThickness="2" CornerRadius="3">
                <Grid x:Name="BoxLabelGrid" Margin="5">
                    <StackPanel x:Name="BoxLabelStackPanel" Orientation="Horizontal">
                        <TextBlock Foreground="Black" Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Name, Mode=TwoWay}"/>
                        <Button x:Name="DelClassBtn" Margin="5,0,0,0" Height="15" MinWidth="15" Width="15" Click="DelClassBtn_Click">
                            <Button.Style>
                                <Style TargetType="{x:Type Button}">
                                    <Setter Property="Background" Value="#EEEEEE"/>
                                    <Setter Property="Template">
                                        <Setter.Value>
                                            <ControlTemplate TargetType="{x:Type Button}">
                                                <Border Background="{TemplateBinding Background}">
                                                    <ContentPresenter Focusable="False" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                                                </Border>
                                            </ControlTemplate>
                                        </Setter.Value>
                                    </Setter>
                                    <Style.Triggers>
                                        <Trigger Property="IsMouseOver" Value="true">
                                            <Setter Property="Background" Value="#d6d6d6"/>
                                        </Trigger>
                                        <Trigger Property="IsPressed" Value="true">
                                            <Setter Property="Background" Value="#bebebe"/>
                                        </Trigger>
                                        <Trigger Property="IsEnabled" Value="false">
                                            <Setter Property="Opacity" Value=".35"/>
                                        </Trigger>
                                    </Style.Triggers>
                                </Style>
                            </Button.Style>
                            <Image HorizontalAlignment="Center" VerticalAlignment="Center" Height="7" Width="7" Source="/Resources/Images/cross_48.png" />
                        </Button>
                    </StackPanel>
                </Grid>
            </Border>
        </Grid>
    </ControlTemplate>
...