win10对比win7有什么不同么?它们分别的优势在哪

win10对比win7有什么不同么?它们分别的优势在哪,第1张

(个人认为Win8最好)win10:多了去了:设置,edge,多桌面,cortana,vs2015,insider preview,my people,速度,兼容性,UWP,wpf,先进性······Win7嘛······

没有仔细研究, 以下是个人主观看法,存在些"想当然", 仅供参考.

首先wpf是依赖于.net framework的, 也就是说xp\win7\win8\Win10, 都是可以跑起来的.并且发布路径不受限制, 就像目前常见的桌面软件一样, 只要下载个安装包安装即可使用. 而UWP好像只能在w8\Win10以及Windows mobile系统上使用, 而且唯一的发布路径就是Windows商店.

其次从风格来看, wpf虽然是流式布局,但更多是为桌面客户端(pc客户端)设计的, 而UWP是移动为先,兼顾PC客户端的.

综上就目前而言, wpf更加偏向于或者更适合于企业级应用或者说面向企业的商业软件而UWP偏向于面向个人消费者的应用软件.

另外我感觉wpf\UWP, 甚至html5这些"界面技术"其实是相通的,非常相似. wpf和UWP甚至很近似, 掌握了其中一个的话再学习另一个非常容易.

1、图中是winform应用, 实现的win7毛玻璃的特效, 参考:

http://blog.csdn.net/cheongyuhin/article/details/5857149

2、WPF实现起来更简单,因为wpf天生对透明、遮罩这些效果支持的非常好。

添加一个类:AeroGlass.cs

using System

using System.Runtime.InteropServices

using System.Windows

using System.Windows.Interop

using System.Windows.Media

 

[StructLayout(LayoutKind.Sequential)]

public struct MARGINS

{

    public MARGINS(Thickness t)

    {

        Left = (int)t.Left

        Right = (int)t.Right

        Top = (int)t.Top

        Bottom = (int)t.Bottom

    }

    public int Left

    public int Right

    public int Top

    public int Bottom

}

 

public class GlassHelper

{

    [DllImport("dwmapi.dll", PreserveSig = false)]

    static extern void DwmExtendFrameIntoClientArea(

        IntPtr hWnd, ref MARGINS pMarInset)

    [DllImport("dwmapi.dll", PreserveSig = false)]

    static extern bool DwmIsCompositionEnabled()

 

    public static bool ExtendGlassFrame(Window window, Thickness margin)

    {

        if (!DwmIsCompositionEnabled())

            return false

 

        IntPtr hwnd = new WindowInteropHelper(window).Handle

        if (hwnd == IntPtr.Zero)

            throw new InvalidOperationException(

            "The Window must be shown before extending glass.")

 

        // Set the background to transparent from both the WPF and Win32 perspectives  

        window.Background = Brushes.Transparent

        HwndSource.FromHwnd(hwnd).CompositionTarget.BackgroundColor = Colors.Transparent

 

        MARGINS margins = new MARGINS(margin)

        DwmExtendFrameIntoClientArea(hwnd, ref margins)

        return true

    }

}

然后在wpf窗体添加代码:

  protected override void OnSourceInitialized(EventArgs e)

  {

       base.OnSourceInitialized(e)

       GlassHelper.ExtendGlassFrame(this, new Thickness(-1))

  }

这种毛玻璃特效是需要继承自系统风格的, 所以必须在win7电脑里,才会出现你要的那种效果, 在win10、win8都没有用的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11520966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存