wpfÖÆ×÷ÍøÕ¾Ê×Ò³½¨Á¢ÒÔ¿Í»§ÎªÖÐÐĵÄÂß¼£¬ÒÔÁ˽â¿Í»§ÐèÇó×÷ΪÊÂÇéµÄÆðµã£¬ÒÔÊÇ·ñÂú×ã¿Í»§ÐèÇó×÷ΪÊÂÇéµÄÆÀ¼Û±ê×¼£¬ÒÔ¿Í»§ÂúÒâ×÷ΪÎÒÃÇÊÂÇéµÄÄ¿±ê£¬ÒÔÁ¬ÐøÎª¿Í»§´´Á¢¼ÛÖµ£¬×ÊÖú¿Í»§ÊµÏÖÃÎÏ룬×÷ΪÎÒÃǵÄÓÀºã×·Çó¡£
±¾ÎÄĿ¼һÀÀ£º
- 1¡¢wpf¿ÉÒÔÓÃÀ´×öÍøÕ¾Âð,Ч¹ûºÃÇ·ºÃ»òÕß˵ÊDz»ÊʺÏ×öÍøÕ¾ÄØ
- 2¡¢¿ìËÙ´´Á¢Èí¼þ×°Öðü-ClickOnce
- 3¡¢wpfÄÚǶwebbrowser²»ÏÔʾ
wpf¿ÉÒÔÓÃÀ´×öÍøÕ¾Âð,Ч¹ûºÃÇ·ºÃ»òÕß˵ÊDz»ÊʺÏ×öÍøÕ¾ÄØ
1¡¢WPF¿ÉÒÔÓÃÀ´¿ª·¢ÍøÕ¾wpfÖÆ×÷ÍøÕ¾Ê×Ò³£¬µ«²»ÊʺÏ×öÍøÕ¾¡£ÒÔÏÂÊÇÏêϸ½âÊÍ£ºWPF¿ÉÒÔÓÃÀ´¿ª·¢ÍøÕ¾ WPFÊÇ΢ÈíÍÆ³öwpfÖÆ×÷ÍøÕ¾Ê×Ò³µÄÒ»ÖÖÓÃÓÚ¹¹½¨¸»¿Í»§¶ËÓ¦ÓóÌÐòwpfÖÆ×÷ÍøÕ¾Ê×Ò³µÄUI¿ò¼Ü¡£ËäÈ»ËüÖ÷ÒªÓÃÓÚ×ÀÃæÓ¦ÓóÌÐòµÄ¿ª·¢wpfÖÆ×÷ÍøÕ¾Ê×Ò³£¬µ«ÀíÂÛÉÏÒ²¿ÉÒÔÓÃÀ´¿ª·¢ÍøÕ¾¡£ÀýÈ磬ͨ¹ýWPFµÄä¯ÀÀÆ÷Ó¦ÓóÌÐò¹¦Ð§£¬¿ª·¢Õß¿ÉÒÔ´´Á¢ÔÚä¯ÀÀÆ÷ÖÐÔËÐеÄWPFÓ¦ÓóÌÐò£¬´Ó¶øÔÚÒ»¶¨Ë®Æ½ÉÏʵÏÖÍøÕ¾µÄ¹¦Ð§¡£
2¡¢Ñ§.netµÄÎÞ·ÇÓÃWinForm»òWPF×ö×ÀÃæÈí¼þ£¬ºÍÓÃAsp.net×öÍøÕ¾£¬¾ø´ó²¿·ÖÊÂÇéÕÕ¾ÉÔÚÓÃAsp.netÔÚ×öÍøÕ¾µÄ°É¡£×ÀÃæÈí¼þµÄÏîÄ¿¸ÐÊÜÏà¶ÔÅÓ´ó£¬ÄѶÈϵÊý±ÈÍøÕ¾Òª¸ß£¬µ«Èí¼þÊг¡ÐèÇóԶȱ·¦ÍøÕ¾µÄ¡£Èç¹ûwpfÖÆ×÷ÍøÕ¾Ê×Ò³ÄãÔÚͼÐδ¦Àí¼°ËãÊýÓкܸßˮƽ£¬¿ÉÒÔ×ß×öÈí¼þ·Ïߣ¬×ö×ÀÃæÈí¼þ»òÓÎÏ·Ö®ÀàµÄ£¬²»È»ÕÕ¾É×öÍøÕ¾°É¡£
¿ìËÙ´´Á¢Èí¼þ×°Öðü-ClickOnce
Óû§¿ÉÒÔͨ¹ý»á¼ûÏßÉϵص㣨Èç https£º//dotnetcom/WPFBlazorChat/Publish.html£©À´ÏÂÔØ²¢×°ÖÃÈí¼þ¡£×°Öðü»á×Ô¶¯¼ì²â°æ±¾ºÅ¡¢Îļþ¸üÐÂÇé¿ö£¬²¢×Ô¶¯ÏÂÔØ³ÌÐòÎļþ¡£×°ÖÃÍê³Éºó£¬³ÌÐò»á×Ô¶¯ÔËÐС£Q&A ClickOnce °²ÅŵÄÊÂÇéÔÀí£º»ùÓÚÁ½¸ö XML Çåµ¥Îļþ£ºÓ¦ÓóÌÐòÇåµ¥ºÍ°²ÅÅÇåµ¥¡£
Ôڵ䷶¼Æ»®ÖУ¬ClickOnce ×°ÖóÌÐò½«°üÀ¨×°ÖóÌÐò (setup.exe)£¬ÒÔ×ÊÖúÈ·±£×°ÖÃÁ˱ر¸Èí¼þ×é¼þ¡£ÒªÅäÖñر¸×é¼þ×°ÖóÌÐò£¬Çëµ¥»÷¡°ÏîÄ¿ÊôÐÔ¡±Ò³µÄ¡°Ðû²¼¡±Ñ¡ÏÉϵıر¸×é¼þ°´Å¥¡£ÒÔÏÂÆÁÄ»¿ìÕÕÏÔʾ½«´´Á¢Ò»¸ö×°ÖóÌÐò£¬ÓÃÓÚ¼ì²éÊÇ·ñ±£´æ .NET Framework 0 ×é¼þ£¬´Ó¶øÆ¾¾ÝÐèÒªÏÂÔØ²¢×°ÖøÃ×é¼þ¡£
Ðû²¼Íê³Éºó£¬ÕÒµ½¸Õ¸ÕÉ趨µÄÎļþ¼Ð¡£Õâ¸öÎļþ¼ÐÖаüÀ¨ÁËËùÓÐÐëÒªµÄ×°ÖÃÎļþ¡£½«Õâ¸öÎļþ¼ÐÖеÄÄÚÈݸ´ÖƵ½Ä¿±ê»úеÉÏ¡£Í¨³££¬Õâ¸öÎļþ¼ÐÖлá°üÀ¨Ò»¸öÃûΪSetup.exeµÄ×°ÖóÌÐò¡£×°ÖÃÈí¼þ£ºÔÚÄ¿±ê»úеÉÏ£¬ÕÒµ½²¢Ë«»÷Setup.exeÎļþ¡£Õ⽫Æô¶¯×°ÖÃÏòµ¼£¬Æ¾¾ÝÌáʾÍê³ÉÈí¼þµÄ×°Öá£
È·±£exeÎļþµÄ·¾¶ºÍÃû³Æ²»°üÀ¨ÌØÊâ×Ö·û»ò¹ý³¤£¬Õâ¿ÉÄܻᵼÖÂÔËÐÐÎÊÌ⡣ͬʱ£¬ÖÆÖ¹ÔÚClickOnceÒÑÐû²¼Î»ÖõÄÎļþ¼ÐÃû³ÆÖÐʹÓÃÌØÊâ×Ö·û¡£¼ì²éȨÏÞÉèÖãºÊµÑéÒÔÖÎÀíÔ±Éí·ÝÔËÐÐexeÎļþ£¬»òÕß¼ì²éÎļþȨÏÞÉèÖÃÊÇ·ñÕýÈ·¡£¹Ø±Õ»òÅäÖÃɱ¶¾Èí¼þ£º²¿·ÖÄþ¾²Èí¼þ¿ÉÄÜ»áÎó½«exeÎļþʶ±ðΪ¶ñÒâÈí¼þ£¬´Ó¶ø×èÖ¹ÆäÔËÐС£
c. VSTO Runtime(ÕâÊÇËùÓÐÓÃVSTO¿ª·¢³öÀ´µÄÈí¼þ£¬ÔËÐÐʱ±Ø±¸µÄ£¬Ä¿Ç°ÓÐÈý¸öÖ÷±¾°æ£¬µÚÈý¸ö°æ±¾ÓÃÀ´Ö§³ÖClickOnce°²ÅÅ£¬±¾ÎÄÖв»Éæ¼°¡£
wpfÄÚǶwebbrowser²»ÏÔʾ
WPFÄÚǶWebBrowser²»ÏÔʾµÄÎÊÌâ¿ÉÄÜÓÉÒÔϼ¸¸öÔÒòÔì³ÉwpfÖÆ×÷ÍøÕ¾Ê×Ò³£ºWebBrowser¿Ø¼þµÄ¼æÈÝÐÔÎÊÌ⣺IE°æ±¾ÒÀÀµ£ºWPFÖеÄWebBrowser¿Ø¼þʵ¼ÊÉÏÊÇ»ùÓÚInternet Explorer£¨IE£©µÄTridentÒýÇæ¡£Èç¹ûϵͳÖÐIE°æ±¾¹ý¾É»ò±£´æ¼æÈÝÐÔÎÊÌâwpfÖÆ×÷ÍøÕ¾Ê×Ò³£¬¿ÉÄܻᵼÖÂWebBrowser¿Ø¼þÎÞ·¨ÕýÈ·ÏÔʾÄÚÈÝ¡£
GeckoFX¼ò½é£ºskyboundÊÂÇéÊÒ¿ª·¢µÄ¿ªÔ´×é¼þwpfÖÆ×÷ÍøÕ¾Ê×Ò³£¬ÓÃÓÚ½«geckoÒýÇæ£¨Firefoxä¯ÀÀÆ÷Äںˣ©Á´½Óµ½.net´°ÌåÓ¦Óá£Ìص㣺ÍêÃÀµÄIE½¹µãWebBrowser¿Ø¼þÌæ´úÆ·¡£ DotNetBrowser¼ò½é£ºÄÜǶÈëÒ»¸ö»ùÓÚChromiumµÄWPF»òWinForms×é¼þµ½.NETÓ¦ÓÃÖУ¬ÓÃÓÚÏÔʾÏÖ´úÍøÒ³¡£Ìص㣺ÊÕ·Ñ¡£Ö§³ÖHTMLCSSJavaScriptµÈ¼¼Êõ¡£
ÁýÕÖÔÚÍøÒ³ÊÓͼ֮ÉÏ£ºDotNetBrowser¿ÉÒÔÒÔÁ½ÖÖģʽ·ºÆðWebÄÚÈÝ£¬ÆäÖÐÒ»ÖÖģʽÔÊÐíÆäwpfÖÆ×÷ÍøÕ¾Ê×Ò³Ëû¿Ø¼þÏÔʾÔÚWebÊÓͼ֮ÉÏ£¬ÕâÊÇEO.WebBrowserËù²»¾ß±¸µÄ¹¦Ð§¡£
//using ºóÌí¼ÓÏÂÃæÁ½¾ä [PermissionSet(SecurityAction.Demand£¬ Name=FullTrust)][System.Runtime.InteropServices.ComVisibleAttribute(true)]//´°ÌåLOADµÄʱºò //½«¸Ã¿Ø¼þµÄ IsWebBrowserContextMenuEnabled ÊôÐÔÉèÖÃΪ false£¬ÒÔ±ÜÃâ WebBrowser ¿Ø¼þÔÚÓû§ÓÒ»÷ËüʱÏÔʾÆä¿ì½Ý²Ëµ¥¡£
wpfÖÆ×÷ÍøÕ¾Ê×Ò³ÒÔÖ÷¹ËΪ¹Ø×¢½¹µã£¬ÒÔÖ÷¹ËÂúÒâΪĿ±ê£¬Í¨¹ýµ÷ÑС¢×·×Ù¡¢×߷õÈÐÎʽ£¬È·±£wpf½çÃæÉè¼Æ½Ì³ÌÖ÷¹ËµÄÐèÇóºÍÆÚÍû»ñµÃÈ·¶¨²¢×ª»¯Îªwpf½çÃæÉè¼Æ½Ì³Ì²úÆ·ºÍЧÀ͵ÄÄ¿±ê¡£