Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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
C# 如何在WPF应用程序中实现不同的视图状态_C#_.net_Wpf_Xaml - Fatal编程技术网

C# 如何在WPF应用程序中实现不同的视图状态

C# 如何在WPF应用程序中实现不同的视图状态,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我有一个个人项目的想法。我知道在Windows窗体中实现它的一种方法(我不再希望使用它)。基本上,我可以(在WinForms中)在屏幕上绘制所有内容(表单),然后当我需要切换应用程序的视图/状态时,只需在旧内容的位置重新绘制新内容 但是我们怎么能在WPF中有不同的状态呢?有没有“正确”或“适当”的方法?文档中是否包含类似的内容 我想自己搜索,但我不知道到底要找什么,目前寻找正确信息的尝试,到目前为止还没有产生任何有用(甚至相关)的结果 任何帮助都将不胜感激。我是WPF的新手,但在过去的一周里取得

我有一个个人项目的想法。我知道在Windows窗体中实现它的一种方法(我不再希望使用它)。基本上,我可以(在WinForms中)在屏幕上绘制所有内容(表单),然后当我需要切换应用程序的视图/状态时,只需在旧内容的位置重新绘制新内容

但是我们怎么能在WPF中有不同的状态呢?有没有“正确”或“适当”的方法?文档中是否包含类似的内容

我想自己搜索,但我不知道到底要找什么,目前寻找正确信息的尝试,到目前为止还没有产生任何有用(甚至相关)的结果

任何帮助都将不胜感激。我是WPF的新手,但在过去的一周里取得了很大的进步

谢谢大家!

附言:
我只是想到了一些事情。如果解决方案是绘制一个屏幕所需的内容,当需要显示下一个屏幕时,只需处理/隐藏所有内容并创建/显示新内容,那么我们将如何解决这个问题?因为我们不能/不应该在运行时更改XAML标记,所以我们可以/应该吗?:/

我不知道我是否明白你真正想要什么。但以下是我的想法:

  • 您可以使用多个窗口并相应地显示/隐藏它们
  • 您可以在WP()中使用框架/页面功能
  • 如果确实需要,您可以加载XAML并删除窗口中最顶层的内容,然后用加载的内容替换它
  • 您可以使用VisualStateGroup功能更改当前窗口的外观

我认为您会对第二种解决方案感到满意

不确定如何在WinForms中绘制视图/状态(在图形对象上直接绘制?)

最接近您所描述的是。您可以使用它在单个XAML中静态定义几个视觉状态,并在它们之间进行转换(如果需要,可以使用平滑动画)

如果您所做的是使用show/ShowDialog()显示不同的表单,那么等效的方法就是使用不同的窗口并显示/隐藏它们


如果您刚刚清除/添加了表单中的控件,那么在WPF中也可以这样做。WPF中的大多数控件都有
内容
子控件
属性,而不是
控件。控件
在表单中。

谢谢@CKoenig-我正在查看您的链接。