Tag: canvas

如何在WPF中绘制平滑的曲线?

我有三个已知位置,目前我正在驾驶两条线路: Line line = new Line { StrokeThickness = 3, Stroke = lineColor, X1 = MyX, Y1 = MyY, X2 = MyX, Y2 = MiddleY }; Graph.Children.Add(line); line = new Line { StrokeThickness = 3, Stroke = lineColor, X1 = MyX, Y1 = MiddleY, X2 = TargetX, Y2 = TargetY }; Graph.Children.Add(line); 这是结果: 所以,正如你所看到的,这几乎是我想要的,除了我希望它更平滑,只是一点点。 现在我正在寻找任何可以设置三个点的方法,将一些平滑/弯曲的水平设置到中间点然后在其上绘制一条带有纯色的线。 […]

如何将base64字符串转换为图像二进制文件并保存到服务器

作为一个例子,我已经转换了一个带有重新resize的图像的canvas元素,并将其发布到一个现在编码为的隐藏输入字段中 data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD… 然后将此值发布到我需要将此字符串转换为图像并保存到服务器上的同一页面。 代码背后的文件(upload.aspx) protected void btnUpload_Click(object sender, EventArgs e) { HttpPostedFile filePosted = Request.Files[“newinput”]; string base64String = filePosted.ToString(); // Convert Base64 String to byte[] byte[] imageBytes = Convert.FromBase64String(base64String); MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length); // Convert byte[] to Image ms.Write(imageBytes, 0, imageBytes.Length); System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true); //I DONT KNOW HOW TO WRITE […]

WPF Canvas Scaling / Transform to Fit

我正在重新提出这个问题,因为我上次没有得到很多答复,希望一些重新措辞可能会有所帮助…… 基本上我正在尝试做的是创建一个数据绑定canvas,它将自动缩放其内容以“填充”可用空间。 有点像缩放以适应操作。 不幸的是,我的WPF技能还不是很强,我正在努力研究如何做到这一点。 我已经按照一些数据绑定示例来获取canvas,但不确定是否可能是错误并阻碍了我。 根据我尝试和解决方案的方式,我现在有两个基本问题: 如果可能使用转换,我不知道如何通过XAML自动重新缩放canvas。 我似乎无法在后面的代码中引用canvas,我猜是因为它是ItemsControl的一部分? 我想要实现的一个例子,我有AI想要尝试获得B: ( 删除过期链接到img ) 我目前使用的代码非常简单,只需使用给定的坐标创建4个点,然后使用另一个视图模型将其包装起来。 public class PointCollectionViewModel { private List viewModels; public PointCollectionViewModel() { this.viewModels = new List(); this.viewModels.Add(new PointViewModel(new Point(1, 1))); this.viewModels.Add(new PointViewModel(new Point(9, 9))); this.viewModels.Add(new PointViewModel(new Point(1, 9))); this.viewModels.Add(new PointViewModel(new Point(9, 1))); } public List Models { get { return this.viewModels; } } } […]

将颜色转换为hexc#

我有转换颜色到hex的问题。 红色下划线低于System.Drawing.ColorTranslator.FromHtml(“paint”)和rect.Color; 可变paint是静态的 – 目前。 在我看来,问题是变量的类型公共System.Drawing.SolidBrush Color在Rect类的System.Drawing.SolidBrush Color List rects = new List(); rects.Add(new Rect() { Width = x, Height = y, Left = w, Top = h, Fill = (System.Windows.Media.Brush)(new BrushConverter()).ConvertFromString(paint) }); foreach (Rect rect in rects) { Rectangle r = new Rectangle { Width = rect.Width, Height = rect.Width, Fill = rect.Fill }; […]

JavaFx创建HatchStyles(类似于C#.Net)

在使用场景形状对象或在JavaFx Canvas上绘图时(在jdk中,第三方库,示例代码等),是否有类似于.Net HatchStyles的填充形状? 我目前能想到的唯一解决方案是使用通过这些.net hatchstyles的图片截图创建的ImagePattern ! GraphicsContext gc = canvas.getGraphicsContext2D(); ImagePattern pattern = new ImagePattern(new Image(“dotnet-pattern.png”); gc.setFill(pattern); .Net填充样式的图形表示:

WPF MVVM中canvas上的绘制线不起作用

我有这个xaml: <!—-> 在模型中我有: public Canvas DrawCanvas { get; set; } public ImageSourceViewModel() { this.PropertyChanged += this.ImageSourceViewModel_PropertyChanged; this.Scale = 1; this.TranslateX = 0; this.TranslateY = 0; DrawCanvas=new Canvas(); var line = new Line(); line.X1= 1; line.Y1 = 1; line.X2 = 100; line.Y2 = 10; line.Stroke=new SolidColorBrush(Colors.Green); line.StrokeThickness = 2; line.Visibility=Visibility.Visible; DrawCanvas.Children.Add(line); } 我正在使用Caliburn Micro。 它不会在输出上绘制任何行。 这个问题可能有两个原因: […]

围绕canvas移动矩形

我的应用程序中间有一个canvas,周围有控件。 我有一个接收点的套接字并将它们保存在列表中。 我在canvas上绘制了小的4×4矩形,用于我列表中的点数。比如说4点……还有4个矩形。 我希望能够在点数随代码变化时移动矩形。 这可能没有故事板或任何“动画”课程吗? 我将如何做我需要的东西? 我试过了: ‘cMap.Children.Remove(r) ‘Dim nr As Rectangle = New Rectangle() With {.Width = 4, .Height = 4, .Name = “r” & P.Name, .Fill = Brushes.Red} ‘r.RenderTransform = New TranslateTransform(P.Position.X, P.Position.Y) Canvas.SetTop(cMap.Children(cMap.Children.IndexOf(r)), (512 / 2) + P.Position.Y) Canvas.SetLeft(cMap.Children(cMap.Children.IndexOf(r)), (512 / 2) + P.Position.X) ‘nr.SetValue(Canvas.TopProperty, (512 / 2) + P.Position.Y) ‘nr.SetValue(Canvas.LeftProperty, (512 […]

WPF:Canvas吞咽MouseDownEvent?

任何人都可以向我解释为什么在这个简单的例子中MouseDown事件没有到达ScrollViewer ? 代码背后: using System; using System.Windows; using System.Windows.Input; namespace MouseDownTest { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); scrollViewer.AddHandler(MouseDownEvent, new RoutedEventHandler(ScrollViewer_Test)); } private void ScrollViewer_Test(object sender, RoutedEventArgs routedEventArgs) { Console.WriteLine(“ScrollViewer_Test”); } private void Canvas_MouseDown(object sender, MouseButtonEventArgs e) { Console.WriteLine(“Canvas_MouseDown”); } private void Canvas_PreviewMouseDown(object sender, MouseButtonEventArgs e) { Console.WriteLine(“Canvas_PreviewMouseDown”); } private […]

在C#中将位图放置在canvas中

可能重复: 如何在WPF中将位图渲染到canvas? 我想要的很简单。 我想在C#中将BitmapImage放入Canvas中。 我的应用程序基于WPF。 我搜索了这个,我发现了类似的问题,但我找不到我想要的东西。 总之,我有这个: BitmapImage img = new BitmapImage(new Uri(“c:\\xyz.jpg”)); 我想把它放在canvas上,意思不是那么重要,它可以是一个矩形或其他什么。

使用自定义背景颜色将带alpha通道的图像复制到剪贴板?

代码: private void Foo(Canvas canvas) { // The content is a bit larger… Size size = new Size(canvas.ActualWidth * 1.1, canvas.ActualHeight * 1.2); // Create a render bitmap and push the surface to it RenderTargetBitmap renderBitmap = new RenderTargetBitmap( (int)size.Width, (int)size.Height, 96d, 96d, PixelFormats.Pbgra32 ); renderBitmap.Render(canvas); // Then copy to clipboard Clipboard.SetImage(renderBitmap); } 我需要的 : […]