如何在MainWindowViewModel中引用MainWindow.xaml中的Resource?

问题描述:在MainWindow.xaml的Window.Resource中定义了一个资源,如下:

<xctk:Wizard x:Key="_wizard" FinishButtonClosesWindow="True">

   ......

</xctk:Wizard>

现在要在MainWindowViewModel中引用"_wizard",怎么办呢?

也许有人会说,把MainWindow实例化,

MainWindow mainWindow=new MainWindow();

mainWindow.Resources["_wizard"]。。;

这样做可以引用,但代价太大,因为这样每次都要对MainWindow实例化,每次产生不同的对象,虽然资源是不会改变的。那该怎么办呢?

可以这样做:把自己定义的资源写到app.xaml中去,然后调用,如下:

<Application.Resources>
        <ResourceDictionary>

             <xctk:Wizard x:Key="_wizard">

              ........

              </xctk:Wizard x:Key="_wizard">

        </ResourceDictionary>

</Application.Resources>   

在 MainWindowViewModel中如何引用呢?

Application.Current.Resources["_wizard"]...;

这样就实现了对资源的引用,注意app.xaml的使用。

            

原文地址:https://www.cnblogs.com/SherryWang/p/3297353.html