TranslateZoomRotateBehavior.ConstrainToParentBounds не работает
У меня есть простой пользовательский элемент управления, в котором я поместил прямоугольник. Я использовал TranslateZoomRotateBehavior, чтобы позволить перетаскивать прямоугольник и масштабировать его с помощью сенсорного экрана.
Перетаскивание и масштабирование работает, как и ожидалось, но ConstrainToParentBounds
собственностью TranslateZoomRotateBehavior
кажется, не имеет никакого эффекта.
Есть ли способ сделать эту работу? Или же достичь той же цели другим (как можно более простым) методом?
Код XAML:
<UserControl
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"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
x:Class="FriendStorage.UI.View.FriendImageCrop"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" MouseWheel="OnMouseWheel" Background="Transparent">
<Grid>
<Rectangle x:Name="RoiRect" Height="80" Width="160">
<i:Interaction.Behaviors>
<ei:TranslateZoomRotateBehavior x:Name="RoiDrag" ConstrainToParentBounds="True" TranslateFriction="1" SupportedGestures="Translate, Scale" MaximumScale="3"/>
</i:Interaction.Behaviors>
<Rectangle.Style>
<Style TargetType="Rectangle">
<Setter Property="Fill" Value="Transparent"/>
<Setter Property="Stroke" Value="Blue"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="StrokeThickness" Value="2"/>
</Trigger>
</Style.Triggers>
</Style>
</Rectangle.Style>
</Rectangle>
</Grid>
</UserControl>
Связанный вопрос в MSDN (нет решения):