c# – 获取画布背景的图像画笔控件的实际大小

c# – 获取画布背景的图像画笔控件的实际大小,第1张

概述我试图弄清楚如何获得在Canvas控件上设置为背景的图像的“视图大小”. 背景设置为 ImageBrush,strech设置为UniForm. 如果strech属性设置为Fill,那么我可以使用画布的ActualWidth和ActualHeight. 这对UniForm来说是不可能的,所以我该如何处理呢? 这是我的XAML: <Grid DataContext="{Binding ImageVie 我试图弄清楚如何获得在Canvas控件上设置为背景的图像的“视图大小”.
背景设置为 ImageBrush,strech设置为UniForm.
如果strech属性设置为Fill,那么我可以使用画布的ActualWIDth和ActualHeight.
这对UniForm来说是不可能的,所以我该如何处理呢?

这是我的XAML:

<GrID DataContext="{Binding ImageVIEwerVM.Currentimage}">    <controls:RubberBandingCanvas x:name="RubCanvas">        <controls:RubberBandingCanvas.Resources>            <Converters:ControlVisibilityConverter x:Key="VisibilityHIDdenConverter" />            <Converters:StringToBitmapConverter x:Key="StringToBitmapConverter" />        </controls:RubberBandingCanvas.Resources>        <controls:RubberBandingCanvas.Background>            <ImageBrush x:name="ibCurrentimage" ImageSource="{Binding Path=Path,Converter={StaticResource StringToBitmapConverter}}" Stretch="Uniform"></ImageBrush>        </controls:RubberBandingCanvas.Background>        <Ellipse Canvas.top="10" Canvas.Right="10" Fill="Red" stroke="Black" Height="15" WIDth="15" Visibility="{Binding Path=IsMultiTiff,Converter={StaticResource VisibilityHIDdenConverter}}"/>                </controls:RubberBandingCanvas></GrID>

最好的祝福,
杰斯珀詹森

解决方法 无法获得开箱即用的ImageBrush的实际大小.我会做的是根据Canvas RenderSize手动计算这个大小.

var ratio = Math.Min(RubCanvas.RenderSize.WIDth / CanvasBackground.ImageSource.WIDth,RubCanvas.RenderSize.Height / CanvasBackground.ImageSource.Height);var imageBrushWIDth = CanvasBackground.ImageSource.WIDth * ratio;var imageBrushHeight = CanvasBackground.ImageSource.Height * ratio;
总结

以上是内存溢出为你收集整理的c# – 获取画布背景的图像画笔控件的实际大小全部内容,希望文章能够帮你解决c# – 获取画布背景的图像画笔控件的实际大小所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1229358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存