c# - 按照 MVVM 模式将 WPF Canvas 保存为图像

标签 c# wpf mvvm icommand

我有一个 Canvas ,例如类似于 this solution或许多其他使用 ItemsControl 的人。

现在我想要一个应该绑定(bind)到 ICommand 的按钮。此命令应调用可以保存图像的 ViewModel 类的方法。 保存方法很清楚,但是如何按照MVVM模式进行绑定(bind)呢?

最佳答案

您可以使用 CommandParameter 将 Canvas 传递给 ViewModel 的 Save 方法

<Button Content="Save" 
        Command="{Binding SaveCanvasCommand}" 
        CommandParameter="{Binding ElenementName=myCanvas}" ?>

<Canvas x:Name="myCanvas">
   <!-- Stuff to save -->
</Canvas>

在你的 ViewModel 或 Command 中的某个地方你会拥有

void SaveCanvasCommandExecute(object parameter)
{
    UIElement toSave = (UIElement)parameter;
    //.. You'd probably use RenderTargetBitmap here to save toSave.
}

关于c# - 按照 MVVM 模式将 WPF Canvas 保存为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17693516/

相关文章:

c# - 奇怪的 Rx+CancellationToken 问题 : sometimes the registered callback does not complete

c# - 在WPF MVVM中从一个 View 导航到另一个 View

wpf - SoundPlayer 的替代品

c# - MVVM INotifyPropertyChanged 与基类 PropertyChange 冲突

c# - 在 Windows Phone 8.1 上通过 Caliburn.Micro 将单个 View 用于多个 ViewModel

c# - List<int> 使用 linq 过滤

c# - 将 C++ COM 对象更新为 C#

c# - 如何获取特定团队项目的 checkin /更改集的历史记录?

wpf - 24/7计算机,中介元素WPF出现问题,在3小时后变黑

c# - 与 MVVM 的用户界面交互