在我的WPF应用程序中过度使用代码?

时间:2017-01-27 16:10:38

标签: c# wpf xaml design-patterns

我正在创建一个简单的WPF应用程序,仅用于练习目的,但我对WPF的经验不多。使用WPF XAML对我来说似乎很麻烦,因为我在C#Console方面有很多经验,特别是在C#和JS驱动的视频游戏引擎Unity中,开发人员可以访问编辑器(类似于WPF中的设计窗口)和代码背后,没有任何XAML。这就是为什么我倾向于使用更少的XAML和更多的代码。

例如,在这里,我修改按钮的Margin属性,而我将其Opacity设置为1;这一切都发生在一个点击事件到网格,它调用函数(完全按照在Unity中完成的方式):

public  void Grid_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            RandomButton.Margin = new Thickness(0, 0, 0, 0);
            RandomButton.Opacity = 1;

        }

如果我没有弄错的话,这也可以通过XAML中的数据绑定来实现,虽然它似乎是一个看似产生相同结果的更复杂的方法。

所以我的问题是:两种方式之间是否存在差异,例如,性能方面还是可扩展性方面(以后哪种方式更容易扩展/修改)?哪个用于行业?

2 个答案:

答案 0 :(得分:3)

就性能而言,没有区别。对于在XAML标记中定义的任何元素,框架将在运行时创建相应类型的实例。

通过使用XAML定义应用程序的可视化表示通常要容易得多。这毕竟是XAML的用法:https://msdn.microsoft.com/en-us/library/cc295302.aspx

您仍然使用C#等编程语言来实现您的应用程序逻辑,即按下鼠标按钮时会发生什么等。因此,使用C#设置/修改您最初在XAML标记中创建的任何元素的属性是细

  

该行业使用哪一种?

对于企业WPF应用程序推荐使用的设计模式是MVVM(Model-View-ViewModel)。您可以参考以下链接获取更多相关信息:https://msdn.microsoft.com/en-us/library/hh848246.aspx

视图负责定义用户在屏幕上看到的内容的结构,布局和外观,通常仅使用XAML创建,而视图模型和模型分别负责处理视图逻辑和业务逻辑使用像C#这样的编程语言实现。

如果您使用Google或Bing,您将找到更多有关如何实施MVVM设计模式的信息和示例。

答案 1 :(得分:1)

您是WPF / XAML开发人员我建议您尽可能多地使用XAML。使用命令和绑定,即使用MVVM架构。如果你想使用键设置不透明度(例如:ctrl + shift),你将不得不编写另一个代码,这会使你的代码多余,从而影响应用程序的性能。利用MVVM模式(你可以使用galasoft的MVVM灯)。在扩展或修改时,您必须修改单个命令方法,而不是修改后面代码上的每个事件等。易于测试..易于构建..易于修改..