Tag: uielement

我想从Silverlight UIElement拖动一个图像并将其放在用户桌面或Windows资源管理器上

我有一个包含图像的Silverlight控件。 我希望用户能够将图像从Silverlight应用程序中拖出并将其放在可以放置图像的任何位置。 例如,桌面或PowerPoint幻灯片或Word文档。 到目前为止,我所阅读的所有内容都表明它无法完成,但我发现很难相信。 我对Silverlight和RIA开发很新,所以任何帮助都会非常感激。 下面是我的WinForm表单中的代码示例,但拖动永远不会启动。 string[] aString = { imagePath }; DataObject data = new DataObject(DataFormats.FileDrop, aString); data.SetData(DataFormats.StringFormat, imagePath); DoDragDrop(data, DragDropEffects.Copy);

从UIElement生成BitmapSource

我试图生成一个基于UIElement的BitmapFrame 。 这是我的function: private BitmapFrame RenderToBitmap2() { RenderTargetBitmap renderBitmap = new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Pbgra32); DrawingVisual drawingVisual = new DrawingVisual(); DrawingContext drawingContext = drawingVisual.RenderOpen(); VisualBrush aVisualBrush = new VisualBrush(GenerateTestStackPanel()); drawingContext.DrawRectangle(aVisualBrush, new Pen(Brushes.Green, 2), new Rect(new Size(150, 150))); drawingContext.Close(); renderBitmap.Render(drawingVisual); return BitmapFrame.Create(renderBitmap); } 出于测试和调试的目的,我使用了一个额外的函数来创建一个简单的StackFrame,它应该创建一个可以表示的有效视觉元素: private StackPanel GenerateTestStackPanel() { // Create a red Ellipse. Ellipse myEllipse […]

WPF使用C#从UIElement截取JPG

我正在尝试从我的部分WPF应用程序创建JPG。 就像截图一样,只有个别的UIElement 。 我从这里开始: http : //www.grumpydev.com/2009/01/03/taking-wpf-screenshots/ 我正在使用他的扩展方法,该方法允许您使用UIElement.GetJpgImage()获取byte []。 然后可以使用文件流将其写入JPG图像。 如果我制作整个窗口的JPG,它看起来很好! 但是,这并不理想,因为它只捕获用户看到的内容。 由于滚动查看器而无法显示的内容或因为其父级动画为小尺寸而无法显示的内容。 如果我拍摄一个“截图”,例如我用于布局的网格: alt text http://img697.imageshack.us/img697/4233/fullscreenshot2.jpg 我得到了这个黑色背景的垃圾。 我不希望这样。 此外,如果我使用动画折叠了这个网格的高度,我根本不会得到任何东西。 这些实际上是模板化的复选框,它们上面应该有黑色文本,网格的背景应该是白色的。 这是其他人写的代码,用于返回写入文件流的byte []数组: public static byte[] GetJpgImage(this UIElement source, double scale, int quality) { double actualHeight = source.RenderSize.Height; double actualWidth = source.RenderSize.Width; double renderHeight = actualHeight * scale; double renderWidth = actualWidth * scale; RenderTargetBitmap […]

UIElement to image file(WP7)

我有一个StackPanel ,它包含一些我希望放入图像文件的Rectangles (例如PNG)。 我正在Windows Phone 7上开发这个,我在互联网上发现的大部分信息都不适用于WP7。 我认为System.Windows.Media.Imaging命名空间是关键,但我不知道从哪里开始。 这基本上就是我想做的事情: StackPanel stack = new StackPanel(); List recList = new List(); 添加一些矩形到recList foreach(var x in recList) stack.Children.Add(x); 然后将stackpanel保存到图像文件中……

在Windows Phone 8.1中拖延UIElement的拖放

我正在使用ManipulationDelta事件处理程序在屏幕上的canvas中拖放一个简单的椭圆。 我正在几个地方使用在线发布的标准方法。 以下是我的事件处理程序中的代码: Ellipse dragableItem = sender as Ellipse; TranslateTransform translateTransform = dragableItem.RenderTransform as TranslateTransform; double newPosX = Canvas.GetLeft(dragableItem) + translateTransform.X + e.Delta.Translation.X; double newPosY = Canvas.GetTop(dragableItem) + translateTransform.Y + e.Delta.Translation.Y; if (!isCanvasBoundary(newPosX, TestCanvas.ActualWidth – dragableItem.ActualWidth, 0)) translateTransform.X += e.Delta.Translation.X; if (!isCanvasBoundary(newPosY, TestCanvas.ActualHeight – dragableItem.ActualHeight, 0)) translateTransform.Y += e.Delta.Translation.Y; 拖放操作工作正常,但是当用户开始拖动到椭圆实际改变其位置之间时,存在大约1秒的令人讨厌的延迟。 我可以通过打印到调试器看到事件处理程序本身几乎立即完成执行,所以我猜它有一些事情可以为屏幕上的所有UIElements做预编程刷新率导致这种延迟? 反正这个问题呢?

在屏幕上找到相对于网格Windows Phone的Button / UIElement的位置

我找不到一种方法来获取屏幕控制的(x,y)坐标中的位置,就像相对于它内部网格的按钮一样。 有没有办法做到这一点,我忽略了?

WinRT中UIElement的绝对坐标

无法找到一种方法来定位Metro风格应用中UIElement绝对位置。 有人知道解决方案吗? (上下文:我希望弹出窗口显示在名为它的按钮旁边)

如何在WinRT XAML C#中克隆UIElement?

我首先尝试了这种方法,但得到错误“元素已经是另一个元素的孩子” var objClone = new MyImageControl(); objClone = this; ((Canvas)this.Parent).Children.Add(objClone); 然后我检查了这个 ,但是在WinRT中没有XamlWriter和XamlReader。 我试图使用MemberwiseClone()但它抛出exception,“不能使用已与其基础RCW分离的COM对象System.Runtime.InteropServices.InvalidComObjectException ”。 那么有谁能告诉我如何将canvas中的现有UserControl克隆到自身?