windows-phone-7 – 在WP7上使用WriteableBitmap和RotateTransfo
发布时间:2020-12-14 05:41:16 所属栏目:Windows 来源:网络整理
导读:似乎在Silverlight for Windows Phone的WriteableBitmap中存在一个非常烦人的错误.我有以下代码和xaml: public partial class MainPage : PhoneApplicationPage{ CompositeTransform rotate = new CompositeTransform(); public MainPage() { InitializeCom
似乎在Silverlight for
Windows Phone的WriteableBitmap中存在一个非常烦人的错误.我有以下代码和xaml:
public partial class MainPage : PhoneApplicationPage { CompositeTransform rotate = new CompositeTransform(); public MainPage() { InitializeComponent(); } private void Button_Click(object sender,System.Windows.RoutedEventArgs e) { this.rotate.Rotation += 15; WriteableBitmap bmp = new WriteableBitmap(this.button,rotate); this.image.Source = bmp; Dispatcher.BeginInvoke(() => Debug.WriteLine("{0},{1}",bmp.PixelWidth,bmp.PixelHeight)); } } 这是xaml: <Grid> <Button VerticalAlignment="Top" HorizontalAlignment="Center" Content="This is a textblock inside a layout" x:Name="button"/> <Image VerticalAlignment="Center" HorizontalAlignment="Center" x:Name="image"/> <Button VerticalAlignment="Bottom" Content="Rotate" Click="Button_Click"/> </Grid> 单击底部按钮时,使用复合变换使用可写位图渲染顶部按钮.每次渲染后,顶部按钮的结果图像都比前一个图像大.此外,可写位图的PixelWith和PixelHeight属性值与Image对象的RenderSize差别很大.有谁知道发生了什么事? 解决方法
我不完全理解发生了什么,但我相信控制尺寸是由于水平和垂直对齐而调整的,并且它会以某种方式导致您提到的问题.
您可以通过将Image控件的Stretch属性设置为None来绕过它.这样,无论图像控制的大小如何,显示的图像将始终保持其原始大小. <Image VerticalAlignment="Center" HorizontalAlignment="Center" Stretch="None" x:Name="image"/> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- npm和cnpm(windows)安装步骤
- windows-7 – 限制bandwitdth使用的BITS策略未生
- Windows – Active Directory站点 – 设计和连接
- windows – 如何从启用了“以管理员身份运行”的
- windows下用libevent 开发一个echo服务
- windows-server-2008 – Windows 2008R2上的IIS
- Windows开发人员权限?
- windows-8 – 如何使用两个拇指实现自定义滑块?
- windows-server-2012-r2 – 如何在实验室中对Win
- windows-phone-8 – Windows Phone 8应用程序的临
热点阅读