Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 画布中的自定义绘图背景_Wpf_Mvvm_Canvas_Background_Drawing - Fatal编程技术网

Wpf 画布中的自定义绘图背景

Wpf 画布中的自定义绘图背景,wpf,mvvm,canvas,background,drawing,Wpf,Mvvm,Canvas,Background,Drawing,我想创建用于绘制形状的程序。 像这样的 这样做,我考虑使用WPF和MVVMPRISM。 我的要求是自定义背景图 在实施过程中,我遇到了一些障碍: 视图代码 这种方法正确吗 问候,, Leszek对不起,Lehu,我无法理解您的结构。模型视图是视图模型还是视图?它似乎是一个ViewModel,因为您将其分配给Canvas DataContext,但随后您将向其传递一个DrawingContext来进行渲染。Hello Gaz。Member _modelView是一个注入画布的ViewModel。我

我想创建用于绘制形状的程序。 像这样的

这样做,我考虑使用WPF和MVVMPRISM。

我的要求是自定义背景图

在实施过程中,我遇到了一些障碍:

视图代码

这种方法正确吗

问候,,
Leszek

对不起,Lehu,我无法理解您的结构。模型视图是视图模型还是视图?它似乎是一个ViewModel,因为您将其分配给Canvas DataContext,但随后您将向其传递一个DrawingContext来进行渲染。Hello Gaz。Member _modelView是一个注入画布的ViewModel。我不确定这是一个适当的方式自定义绘图背景。最后,我想在MVVM模式中手动绘制画布背景。
public class DrawingAreaCanvas : Canvas, IDrawingAreaCanvas
{
    .......
    private IDrawingAreaModelView _modelView;
    [Dependency]
    public IDrawingAreaModelView ModelView
    {
        get { return _modelView; }
        set
        {
            _modelView = value;
            DataContext = _modelView;
        }
    }

    protected override void OnRender(System.Windows.Media.DrawingContext dc)
    {
        base.OnRender(dc);

        _modelView.OnRender(dc); // Pass drawing to modelview
    }
}