Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
如何为WPF手动重新加载Visual Studio designer_Wpf_Visual Studio_Xaml_Designer - Fatal编程技术网

如何为WPF手动重新加载Visual Studio designer

如何为WPF手动重新加载Visual Studio designer,wpf,visual-studio,xaml,designer,Wpf,Visual Studio,Xaml,Designer,有没有办法强迫WPF设计器重新加载或刷新,而不重建整个项目或解决方案 如果出现错误,我会在designer视图中获得一个选项来刷新设计器。但是,如果我没有错误,在我进行更改后,如何让设计器刷新?我不确定,但我认为在这种情况下,生成将刷新您的视图。该XAML文件中处理了任何事件,那么它通常不会显示Visual Studio中的设计预览。如果您想从Visual Studio查看设计,请尝试使用命令绑定而不是事件绑定,您将看到预览。我不确定这在WPF编辑中是如何工作的,但是对于ASP.NET页面,当设

有没有办法强迫WPF设计器重新加载或刷新,而不重建整个项目或解决方案


如果出现错误,我会在designer视图中获得一个选项来刷新设计器。但是,如果我没有错误,在我进行更改后,如何让设计器刷新?

我不确定,但我认为在这种情况下,生成将刷新您的视图。

该XAML文件中处理了任何事件,那么它通常不会显示Visual Studio中的设计预览。如果您想从Visual Studio查看设计,请尝试使用命令绑定而不是事件绑定,您将看到预览。

我不确定这在WPF编辑中是如何工作的,但是对于ASP.NET页面,当设计视图不更新时,我可以做两件事

  • 退出Visual Studio并重新启动
  • 进入源代码视图(不是拆分),键入某个内容并将其删除(不是通过撤消,只是删除或反备份),然后保存。然后返回到“设计”视图,通常视图已更新

  • VisualStudio设计器尝试使渲染视图与XAML保持同步。这是广告宣传的行为

    • 您应该检查的第一件事是“错误”窗口中没有错误。它可能像缺少角括号一样简单
    • 第二件要检查的事情是,是否有任何代码(除了隐藏的代码)需要编译,以便设计器正确呈现XAML。这包括您自己在XAML中实例化的任何数据类型、您编写的任何自定义控件(例如,从TextBlock派生的MyTextBlock)或直接或间接支持设计时数据的任何类。如果是这样,您需要重建项目
    • 最后要检查的是设计器中可能存在的bug。尽管有广告宣传的行为,设计师可能会因为bug而失去同步。在该关闭窗口中,关闭XAML窗口并重新打开它。其他可能有效的技巧是选择XAML选项卡,然后选择Design选项卡,或者最大化XAML窗格

    就重建应用程序而言,您不需要将此作为一种习惯。仅当上述条件适用时,才需要重新编译它。一旦它们不适用,您就可以编辑XAML。另一种说法是,如果您没有修改代码,就不需要重新构建(模bug)。

    我有点晚了,但这是迄今为止我发现的最好的解决方案1:每当设计师做蠢事时,我都会杀死它的进程

    按Ctrl+Shift+Esc键
    导航到“流程”选项卡。
    Kill
    XDesProc.exe

    这也解决了属性窗口的问题(比如当它被卡住时,你不能在其中输入内容)

    1这是针对设计师问题的解决方案。您的问题也可能是由编译问题引起的,在这种情况下,只需右键单击解决方案资源管理器中的解决方案,然后清除它。其背后的原因是,有时编译会与从XAML生成的文件失去同步性,清理解决方案只会删除这些中间文件;这就像是一次重置,这样编译就可以从头开始了


    要快速完成,请执行以下操作:

    如果按字母顺序排序,它通常是最后一个。

    当它是,它几乎像一个仪式,为我快速弹出任务管理器,点击任何进程,按结束,删除,输入(完成),Esc(退出任务管理器)。与重新启动VS并等待所有加载和卸载不同,您可以在1-2秒内完成此操作。

    当您添加新行代码或新对象时,XAML设计器是同步的,但当对象的属性更改时,我遇到了不同步行为


    一种棘手的方法是,当您更改属性时,只需从指令末尾删除“>”字符,然后重新键入。

    您可以将其添加到Visual Studio中的
    工具
    菜单中

    配置后,使用
    工具..XAML设计器重新启动

    Alt+T然后L

    我尝试将其配置为Alt+T然后是X,但这与
    Tools.冲突。选择工具箱项

    更新
    现在,我更喜欢按Ctrl+Shift+Esc打开进程管理器,然后按X跳转到
    XDesProc.exe
    ,然后按Delete删除恶意进程。

    在较新版本的Visual Studio中,设计器底部有一个图标“禁用项目代码”。如果关闭并打开此选项,它将重新加载设计器。

    有关信息,我与Visual Studio Community 2017的XAML设计器有相同的问题,即有时候设计器不显示任何内容,最简单的解决方案是关闭XAML文件并重新打开它

    我还经常遇到异常“发生了未处理的异常-单击此处重新加载设计器-详细信息:XAML设计器意外退出”(单击成功重新启动设计器)


    请注意,在此VS版本中,XAML设计器的进程未命名为XDesProc.exe,而是UwpSurface.exe。如果您希望或必须终止该进程,则设计器将显示与上述相同的异常,您可以重新启动它。

    在XAML设计器的工具栏上,选择“禁用项目代码”按钮以重新加载设计器链接,该链接位于“打开捕捉到捕捉线”的右侧

    如果它被禁用,您可以尝试检查configuration manager并将处理器更改为“任意CPU”

    对于以ARM或X64处理器为目标的项目,Visual Studio无法在设计器中运行项目代码,因此在设计器中禁用“禁用项目代码”按钮。选中此项:


    到目前为止,最好的方法是访问一些代码隐藏文件,然后再次访问XAML文件。这虽然有用,但很差。顺便提一下,这个问题很好。blend也存在同样的问题。至少在理论上,设计视图总是与XAML同步,所以不需要手动刷新它。