首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在wpf中使用savefiledialog保存画布

如何在wpf中使用savefiledialog保存画布
EN

Stack Overflow用户
提问于 2013-11-21 07:04:02
回答 1查看 2.4K关注 0票数 1

这里我有XAML的代码,我想要保存为图像使用windows窗体保存文件dailog和上传图像到墨水画布。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        <StackPanel Margin="0,4,45,0" DockPanel.Dock="Right" Width="580">
        <Border BorderBrush="Red" BorderThickness="5">
            <InkCanvas Name="InkCanvas1" Height="200">
                <InkCanvas.DefaultDrawingAttributes>
                    <DrawingAttributes Width="20" Height="20" Color="Red" ></DrawingAttributes>
                </InkCanvas.DefaultDrawingAttributes>
            </InkCanvas>
        </Border>
    </StackPanel>

如何保存特定区域的画布,并上传图像到油墨画布。请帮帮我。

EN

回答 1

Stack Overflow用户

发布于 2013-11-21 07:25:02

您必须将您的InkCanvas转换为位图。下面的代码是快速n脏的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Window x:Class="InkCanvas.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <InkCanvas Name="yourinkcanvas">
        <Image Source="http://blogs.msdn.com/blogfiles/expression/WindowsLiveWriter/ASmallInkCanvasSample_10388/inkcanvasExample_a6d9403d-4bca-40bb-93ad-6364d537f2c6.png"/>
    </InkCanvas>
    <Button Content="SAVE" Height="20" VerticalAlignment="Bottom" Click="Button_Click"/>
</Grid>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private void Button_Click(object sender, RoutedEventArgs e)
    {
        Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
        dlg.FileName = "savedimage"; // Default file name
        dlg.DefaultExt = ".jpg"; // Default file extension
        dlg.Filter = "Image (.jpg)|*.jpg"; // Filter files by extension

        // Show save file dialog box
        Nullable<bool> result = dlg.ShowDialog();

        // Process save file dialog box results
        if (result == true)
        {
            // Save document
            string filename = dlg.FileName;
            //get the dimensions of the ink control
            int margin = (int)this.yourinkcanvas.Margin.Left;
            int width = (int)this.yourinkcanvas.ActualWidth - margin;
            int height = (int)this.yourinkcanvas.ActualHeight - margin;
            //render ink to bitmap
            RenderTargetBitmap rtb =
            new RenderTargetBitmap(width, height, 96d, 96d, PixelFormats.Default);
            rtb.Render(yourinkcanvas);

            using (FileStream fs = new FileStream(filename, FileMode.Create))
            {
                BmpBitmapEncoder encoder = new BmpBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(rtb));
                encoder.Save(fs);    
            }
        }
    }

要保存特定区域,请使用“边距”、“宽度”和“高度”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20124448

复制
相关文章
通过SaveFileDialog实现保存文件[通俗易懂]
SaveFileDialog saveExcel = new SaveFileDialog();//实例化SaveFileDialog
全栈程序员站长
2022/11/08
1.3K0
Winform控件:保存文件对话框(SaveFileDialog)[通俗易懂]
2、在界面上添加一个按钮的控件(用于打开保存文件对话框),添加文本控件,用于输入要保存的内容。
全栈程序员站长
2022/09/07
3.2K0
Winform控件:保存文件对话框(SaveFileDialog)[通俗易懂]
WPF 画布工具栏的可扩展设计
我在写一个和 PS 差很多的工具,这个工具中间有一个画布,而我需要写一个扩展很好做的工具栏集合,这个工具栏设计上需要支持可以让小伙伴愉快的拆卸,功能足够独立,使用方便。本文就来告诉大家我的这个设计方案
林德熙
2022/08/12
4790
WPF 画布工具栏的可扩展设计
OxyPlot 导出图片及 WPF 元素导出为图片的方法
最近有个需求,就是将 OxyPlot 图形导出图片。经过尝试,本文记录三种方法:1、OxyPlot 自带导出方法;2、网上找的导出 WPF 界面元素的方法;3、基于方法 2 的附加属性调用方式。下面将逐一介绍。
独立观察员
2022/12/06
1.2K0
OxyPlot 导出图片及 WPF 元素导出为图片的方法
canvas清除画布-ZBrush中如何清除画布中多余图像
  ZBrush是一款数字雕刻与绘画软件,它以强大的功能和直观的工作流程彻底改变了整个三维行业。它的简洁化、智能化和人性化的设计无不让众多用户所折服。刚接触它的用户可能会因为找不到相关命令或不熟悉而觉得它有些复杂canvas清除画布,那么,在ZBrush®软件中如何对多余模型进行清除的操作有些刚接触的用户会找不清,本文就删除画布中的多余模型做详细讲解。
宜轩
2022/12/29
2.5K0
[WPF]为什么使用SaveFileDialog创建文件需要删除权限?
好像很少人会遇到这种需求。假设有一个文件夹,用户有几乎所有权限,但没有删除的权限,如下图所示:
dino.c
2020/04/08
8900
[WPF]为什么使用SaveFileDialog创建文件需要删除权限?
c#savefiledialog默认文件名_visual studio code保存快捷键
本文固定链接:http://www.itechzero.com/c-sharp-savefiledialog-usage.html,转载请注明出处。
全栈程序员站长
2022/11/08
4760
WPF 使用 Pandoc 把 Markdown 转 Docx
本文告诉大家如何通过 WPF 使用 Pandoc 把 Markdown 转 Docx 文件
林德熙
2022/08/04
5830
WPF 使用 Pandoc 把 Markdown 转 Docx 选择文件获取文件的文件夹使用资源管理器打开文件夹选择指定文件
本文告诉大家如何通过 WPF 使用 Pandoc 把 Markdown 转 Docx 文件
林德熙
2019/03/13
1.2K0
WPF 使用 Pandoc 把 Markdown 转 Docx
            选择文件获取文件的文件夹使用资源管理器打开文件夹选择指定文件
SaveFileDialog无法打开
当前画面是报表画面,没用线程。主画面点击按钮,打开该画面,是在子线程中打开的,所以SaveFileDialog也无法直接打开
全栈程序员站长
2022/11/10
1.9K0
如何在条码打印软件中使用打印时保存
有些客户在条码打印软件中批量制作完成标签之后,想要把标签内容以txt文本的形式保存出来,可以把标签上的每个内容分别保存到一个TXT文本,也可以把标签上的多个内容保存到一个TXT文本中,条码打印软件中打印时保存就可以实现这个效果,具体操作如下:
用户5746110
2019/07/03
2.4K0
如何在 eNSP 上保存配置?
我们在eNSP上做网络实验的时候,如果在eNSP上添加了太多的设备完成配置,需要重启PC或者需要将配置转换到另一台PC,我们需要保存配置,否则我们必须再次进行配置,这很烦人。
网络技术联盟站
2022/03/02
1.6K0
如何在 eNSP 上保存配置?
WPF 如何在 WriteableBitmap 写文字
最近看到WPF 使用不安全代码快速从数组转 WriteableBitmap 可以快速从数组转 WriteableBitmap 所以就让他画一些元素,但是发现元素有文字就没法了。 本文告诉大家如何在 WriteableBitmap 把文字画上去。
林德熙
2022/08/04
4970
WPF如何在子线程或其他类中操控控件
一开始使用WPF界面的时候,会有这样的需求就是在后台更新控件,以完成列表更新,计时器,进度条等功能,但WPF这边架构限制,决定子线程是不安全的,如果创建子线程直接操作控件就会出错。
zls365
2021/03/16
2K0
如何在 eNSP 上保存配置?
如果不想一个一个导出设备的配置,可以在CLI界面通过命令save保存配置,然后点击工具栏上的Save/Save as按钮保存整个工程。
网络技术联盟站
2023/03/13
3.8K0
如何在 eNSP 上保存配置?
WPF 如何在绑定失败异常
在开发 WPF 程序,虽然 xaml 很好用,但是经常会出现小伙伴把绑定写错了。因为默认的 VisualStudio 是没有自动提示,这时很容易复制粘贴写出一个不存在的属性。 在 xaml 如果绑定失败了,那么内部会有一个异常,但是 WPF 不会把这个异常抛出来,这个异常也不会让用户拿到,只是会在输出窗口提示。但是异常会影响性能,而且会让界面和设计的不一样,所以我就想在找到绑定异常就抛出,弹出窗口告诉小伙伴。 本文会告诉大家如何找到绑定失败,并且抛出异常,如何防止修改属性名让xaml绑定失败。
林德熙
2018/09/19
2.3K0
WPF 如何在绑定失败异常
WPF 如何在 WriteableBitmap 写文字
最近看到WPF 使用不安全代码快速从数组转 WriteableBitmap 可以快速从数组转 WriteableBitmap 所以就让他画一些元素,但是发现元素有文字就没法了。 本文告诉大家如何在 WriteableBitmap 把文字画上去。
林德熙
2018/09/19
1.8K0
WPF 如何在 WriteableBitmap 写文字
WPF 如何在绑定失败异常
在开发 WPF 程序,虽然 xaml 很好用,但是经常会出现小伙伴把绑定写错了。因为默认的 VisualStudio 是没有自动提示,这时很容易复制粘贴写出一个不存在的属性。 在 xaml 如果绑定失败了,那么内部会有一个异常,但是 WPF 不会把这个异常抛出来,这个异常也不会让用户拿到,只是会在输出窗口提示。但是异常会影响性能,而且会让界面和设计的不一样,所以我就想在找到绑定异常就抛出,弹出窗口告诉小伙伴。 本文会告诉大家如何找到绑定失败,并且抛出异常,如何防止修改属性名让xaml绑定失败。
林德熙
2022/08/04
1.3K0
savefiledialog用法_vba filedialog
保存文件的控件有两种方式,一种就是保存,二就是另存为,保存很简单,就是在文件已经打开的情况下,在把文件写一遍
全栈程序员站长
2022/11/10
3640
点击加载更多

相似问题

WPF - SaveFileDialog

40

如何通过SaveFileDialog从WPF保存BitmapImage?

24

不使用SaveFileDialog保存文件

12

WPF SaveFileDialog中的SupportMultiDottedExtensions

10

WPF中的SaveFileDialog错误

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文