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

C# 在我的WPF应用程序中过度使用代码?,c#,wpf,xaml,design-patterns,C#,Wpf,Xaml,Design Patterns,我创建一个简单的WPF应用程序只是为了练习,但我在WPF方面的经验很少。使用WPF XAML对我来说似乎很麻烦,因为我对C#Console有更多的经验,尤其是C#和JS驱动的视频游戏引擎Unity,开发者可以在没有XAML的情况下访问编辑器(类似于WPF中的设计窗口)和代码。这就是为什么我倾向于使用更少的XAML和更多的代码 例如,在这里,我修改按钮的边距属性,同时将其不透明度设置为1;这一切都发生在网格的单击事件上,网格调用函数(与Unity中的操作方式完全相同): 如果我没有弄错的话,这也可

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

例如,在这里,我修改按钮的边距属性,同时将其不透明度设置为1;这一切都发生在网格的单击事件上,网格调用函数(与Unity中的操作方式完全相同):

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


所以我的问题是:这两种方式之间有区别吗,比如说,性能方面还是可扩展性方面(哪一种以后更容易扩展/修改)?行业中使用哪一种?

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

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

不过,使用XAML定义应用程序的可视化表示通常要容易得多。这就是XAML的用途:

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

行业中使用的是哪一种

对于企业WPF应用程序,建议使用的设计模式是MVVM(模型视图视图模型)。有关详细信息,请参阅以下链接:

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


如果您使用Google或Bing搜索MVVM设计模式,您将发现更多关于如何实现MVVM设计模式的信息和示例。

谢谢!如果我的答案正确,那么我应该将代码分成至少3个不同但相互关联的部分:一个用于XAML(视图)中的设计,一个用于C#或任何其他语言(业务逻辑)中的“繁重”计算等,另一个用于连接它们(视图逻辑)。还有一个相关的问题:是否有经验法则来为我的代码部分确定合适的“部分”。代码的性质以及它定义的逻辑类型决定了它属于视图、视图模型还是模型。请参考我提供的链接了解更多信息。你可能还想读一读:谢谢!我将查找MVVM。
public  void Grid_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            RandomButton.Margin = new Thickness(0, 0, 0, 0);
            RandomButton.Opacity = 1;

        }