我有这个xaml:
<Border Grid.Row="3" Margin="0" Background="Transparent" ClipToBounds="true" >
<Canvas RenderTransformOrigin="0.5,0.5" >
<Image Source="{Binding ImageSource}" Stretch="UniformToFill" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" RenderTransformOrigin="0.5,0.5" cal:Message.Attach="[Event MouseLeftButtonDown] = [Action MouseLeftButtonDown($source, $eventargs)];
[Event MouseLeftButtonUp] = [Action MouseLeftButtonUp($source, $eventargs)];
[Event MouseMove] = [Action MouseMove($source, $eventargs)]" >
</Image>
<Line X1="1" Y1="1" X2="400" Y2="400" Stroke="Black" StrokeThickness="20" IsHitTestVisible="False"/>
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding Scale}" ScaleY="{Binding Scale}" />
<TranslateTransform X="{Binding TranslateX}" Y="{Binding TranslateY}" />
</TransformGroup>
</Canvas.RenderTransform>
</Canvas>
</Border>
在这个xaml中,Stretch =&#34; UniformToFill&#34;在图像上不起作用,但是扼杀,它正在这个工作:
<Border Grid.Row="3" Margin="0" Background="Transparent" ClipToBounds="true" >
<!--<Canvas RenderTransformOrigin="0.5,0.5" >-->
<Image Source="{Binding ImageSource}" Stretch="UniformToFill" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" RenderTransformOrigin="0.5,0.5" cal:Message.Attach="[Event MouseLeftButtonDown] = [Action MouseLeftButtonDown($source, $eventargs)];
[Event MouseLeftButtonUp] = [Action MouseLeftButtonUp($source, $eventargs)];
[Event MouseMove] = [Action MouseMove($source, $eventargs)]" >
</Image>
<!--<Line X1="1" Y1="1" X2="400" Y2="400" Stroke="Black" StrokeThickness="20" IsHitTestVisible="False"/>-->
<!--<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding Scale}" ScaleY="{Binding Scale}" />
<TranslateTransform X="{Binding TranslateX}" Y="{Binding TranslateY}" />
</TransformGroup>
</Canvas.RenderTransform>
</Canvas>-->
</Border>
我删除了图片父画布。
我该如何解决这个问题?
答案 0 :(得分:0)
尝试添加周围的Grid
以将尺寸限制应用于Image
,然后将Canvas
分层到拉伸的Image
上。
<Border Grid.Row="3" Margin="0" Background="Transparent" ClipToBounds="true" >
<Grid RenderTransformOrigin="0.5,0.5" >
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding Scale}" ScaleY="{Binding Scale}" />
<TranslateTransform X="{Binding TranslateX}" Y="{Binding TranslateY}" />
</TransformGroup>
</Grid.RenderTransform>
<Image Source="{Binding ImageSource}" Stretch="UniformToFill" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" RenderTransformOrigin="0.5,0.5" cal:Message.Attach="[Event MouseLeftButtonDown] = [Action MouseLeftButtonDown($source, $eventargs)];
[Event MouseLeftButtonUp] = [Action MouseLeftButtonUp($source, $eventargs)];
[Event MouseMove] = [Action MouseMove($source, $eventargs)]" >
</Image>
<Canvas>
<Line X1="1" Y1="1" X2="400" Y2="400" Stroke="Black" StrokeThickness="20" IsHitTestVisible="False"/>
</Canvas>
</Grid>
</Border>