我是一个新手在Windows领域,我认为我在一个问题上迷失了方向。我希望得到一些来自有C++/CLI、WPF和XAML经验的人的建议。
我有一些win32代码,需要运行WPF GUI。我找到了这个微软演练样例,使用了C++/CLI。我根据我的目的进行了改编,效果很好。
接下来,我想摆脱程序化的WPF内容,改用XAML。这样我就可以将XAML交给设计师,让自己不再参与UI设计过程中,因为我绝对不属于那个领域。在阅读了MSDN上的WPF和Win32互操作项目部分后,我决定选择
现在我想在XAML中为控件添加事件处理程序。这就是我开始遇到麻烦的地方。我相信我的Windows世界的普遍无知是导致问题的95%。
我从Rob Relyea的页面开始,概述了各种XAML和事件处理程序选项。
我决定尝试将XAML编译为C# DLL。它基本上是与我在运行时加载案例中使用的XAML相同。我像以前一样实例化对象并以编程方式将其作为子对象添加。但是...我什么也没得到,只有一个黑色窗口。也没有抛出任何异常。我很困惑。
我的问题是,我是否走在正确的道路上?关于XAML和事件处理程序的页面说,您可以在.Net Framework 4中使用未编译的XAML中定义的事件处理程序。我应该咬紧牙关,转到VS 2010(我目前正在使用VS 2008),以便我可以使用.Net Framework 4并坚持使用未编译的XAML吗?这种做法有什么需要注意的地方吗?
我有一些win32代码,需要运行WPF GUI。我找到了这个微软演练样例,使用了C++/CLI。我根据我的目的进行了改编,效果很好。
接下来,我想摆脱程序化的WPF内容,改用XAML。这样我就可以将XAML交给设计师,让自己不再参与UI设计过程中,因为我绝对不属于那个领域。在阅读了MSDN上的WPF和Win32互操作项目部分后,我决定选择
XamlReader::Load
选项,并在运行时加载未编译的XAML。我的XAML标记是一个Canvas
UIElement
,我以编程方式将其作为我的根Grid
C++/CLI元素的子元素添加。这工作得很好。现在我想在XAML中为控件添加事件处理程序。这就是我开始遇到麻烦的地方。我相信我的Windows世界的普遍无知是导致问题的95%。
我从Rob Relyea的页面开始,概述了各种XAML和事件处理程序选项。
我决定尝试将XAML编译为C# DLL。它基本上是与我在运行时加载案例中使用的XAML相同。我像以前一样实例化对象并以编程方式将其作为子对象添加。但是...我什么也没得到,只有一个黑色窗口。也没有抛出任何异常。我很困惑。
我的问题是,我是否走在正确的道路上?关于XAML和事件处理程序的页面说,您可以在.Net Framework 4中使用未编译的XAML中定义的事件处理程序。我应该咬紧牙关,转到VS 2010(我目前正在使用VS 2008),以便我可以使用.Net Framework 4并坚持使用未编译的XAML吗?这种做法有什么需要注意的地方吗?
如果您认为编译的C# DLL是一个合理的路径,那么您有什么想法可以帮助我调试遇到的问题吗?
或者,是否有更好、完全不同的方法?
提前感谢您的建议。
Polly