【转】【C#】判断当前操作系统
写一个判断操作系统的工具类OSHelper.cs
public class OSHelper
{
// 获取操作系统ID
public static System.PlatformID GetPlatformID()
{
//获取系统信息
System.OperatingSystem osInfo = System.Environment.OSVersion;
//获取操作系统ID
System.PlatformID platformID = osInfo.Platform;
return platformID;
}
// 获取主版本号
public static int GetVersionMajor()
{
//获取系统信息
System.OperatingSystem osInfo = System.Environment.OSVersion;
//获取主版本号
int versionMajor = osInfo.Version.Major;
return versionMajor;
}
// 获取副版本号
public static int GetVersionMinor()
{
//获取系统信息
System.OperatingSystem osInfo = System.Environment.OSVersion;
//获取副版本号
int versionMinor = osInfo.Version.Minor;
return versionMinor;
}
//C#判断操作系统是否为Windows98
public static bool IsWindows98
{
get
{
return (Environment.OSVersion.Platform == PlatformID.Win32Windows) && (Environment.OSVersion.Version.Minor == 10) && (Environment.OSVersion.Version.Revision.ToString() != "2222A");
}
}
//C#判断操作系统是否为Windows98第二版
public static bool IsWindows98Second
{
get
{
return (Environment.OSVersion.Platform == PlatformID.Win32Windows) && (Environment.OSVersion.Version.Minor == 10) && (Environment.OSVersion.Version.Revision.ToString() == "2222A");
}
}
//C#判断操作系统是否为Windows2000
public static bool IsWindows2000
{
get
{
return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 5) && (Environment.OSVersion.Version.Minor == 0);
}
}
//C#判断操作系统是否为WindowsXP
public static bool IsWindowsXP
{
get
{
return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 5) && (Environment.OSVersion.Version.Minor == 1);
}
}
//C#判断操作系统是否为Windows2003
public static bool IsWindows2003
{
get
{
return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 5) && (Environment.OSVersion.Version.Minor == 2);
}
}
//C#判断操作系统是否为WindowsVista
public static bool IsWindowsVista
{
get
{
return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 6) && (Environment.OSVersion.Version.Minor == 0);
}
}
//C#判断操作系统是否为Windows7
public static bool IsWindows7
{
get
{
return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 6) && (Environment.OSVersion.Version.Minor == 1);
}
}
//C#判断操作系统是否为Unix
public static bool IsUnix
{
get
{
return Environment.OSVersion.Platform == PlatformID.Unix;
}
}
//利用C#判断当前操作系统是否为Win8系统
public static bool IsWindows8()
{
Version currentVersion = Environment.OSVersion.Version;
Version compareToVersion = new Version("6.2");
if (currentVersion.CompareTo(compareToVersion) >= 0)
return true;
else
return false;
}
}
问题来源:
做WPF的时候,发现部分UI在不同操作系统下的表现不一致,例如ListBox中的元素Item在Win10中水平间距自动平均分的,即指定了Item的宽高,但不指定Margin,会自动计算出Margin以平均间距,但是在Win8中不会如此,即所有Item靠左对齐,导致右边有一段空白。所以需要根据不同OS做UI的适配。
根据这一问题,解决办法是在XAML中ListBox使用< ListBox.ItemTemplate >< DataTemplate >,然后将Margin=”{Binding Margin}”使用MVVM绑定界面属性到ViewModel中,然后给ItemsSource绑定的列表中的实体类新增这个Margin属性(类型最好是Thickness,如果只有一个值也可以是int)。
重要的参考:
http://blog.csdn.net/yl2isoft/article/details/17336329
https://msdn.microsoft.com/zh-cn/library/windows/desktop/ms724834(v=vs.85).aspx
【转】【C#】判断当前操作系统的更多相关文章
- JS判断是否是微信页面,判断手机操作系统(ios或android)并跳转到不同下载页面
JS判断客户端是否是iOS或者Android 参考:http://caibaojian.com/browser-ios-or-android.html function is_weixin() { v ...
- js 判断当前操作系统是ios还是android还是电脑端
js判断客户端是否是IOS或者是Android //如果返回true 则说明是Android function is_weixin() { var ua = window.navigator.user ...
- JS判断浏览器类型,JS判断客户端操作系统
JS判断浏览器类型 function judge(){ var browser = { versions: function() { var u = navigator.userAgent, app ...
- 移动端:判断是否微信端、判断手机操作系统(ios或android)
http://caibaojian.com/browser-ios-or-android.htmlfunction is_weixin() { var ua = window.navigator.us ...
- JS判断访问设备(userAgent)加载不同页面 JS判断客户端操作系统类型(platform)
//平台.设备和操作系统 var system ={ win : false, mac : false, xll : false }; //检测平台 var p = navigator.platfor ...
- PHP判断用户操作系统(Android,ipad,iphone,windows)
这段脚本可以运用在:针对不同的操作系统,把用户引导向相应的网站或做相应的处理. <?php // PHP 判断客户端平台(PC.安卓.iPhone.平板) // strpos() 函数返回字符串 ...
- 判断windows操作系统平台
判断当前Windows系统是win2000,winXP,winVista,win2003,win7... private static IntPtr GetSysTrayWnd() { IntPtr ...
- js 判断当前操作系统 ios, android, 电脑端
一 . js判断移动端的操作系统(ios或Android) $(function () { var u = navigator.userAgent; var isAndroid = u.index ...
- centos8环境判断当前操作系统是否虚拟机或容器
一,阿里云ECS的centos环境 1,执行systemd-detect-virt [root@yjweb ~]# systemd-detect-virt kvm 说明阿里云的ecs是在一个kvm环境 ...
随机推荐
- 自己总结的javascript基础知识
为了面试自己写的概要,参考文献:<javascript高级程序设计> 1.选择符API *querySelector() querySelector()接收一个css选择符,返回与选择符匹 ...
- 我认为比较有用的快捷键(Eclipse)
http://hi.baidu.com/%D4%AD%CA%BC%C1%F7%C0%CB%D5%DF/blog/item/e497b94dd1b0b92daec3ab36.html 我认为比较有用的快 ...
- linux系统新建用户ssh远程登陆显示-bash-4.1$解决方法,ssh-bash-4.1
linux系统新建的用户用ssh远程登陆显示-bash-4.1$,不显示用户名路径 网络上好多解决办法,大多是新建.bash_profile文件然后输入XXXXX....然而并没有什么用没有用.... ...
- 基于 html5 geolocation来获取经纬度地址(copy)
geolocation来获取经纬度地址 以前如果要获取互联网用户所在地都是根据用户的IP地址来获取地理位置,这样获取到的数据和真实数据有很大的偏差.为了获取更加精确的位置,可以使用了html5的geo ...
- Android Fragment之间传递List数据
要说的是在两个Fragment之间传递List数据,比如有个List<User>,以及传递字符串数据,比如testId,该如何从FragmentA传递到FragmentB呢? 下面这个例子 ...
- JMeter学习笔记---性能分析
图像结果: 通过观察平均采样响应时长,用户可以直观地看到,随着并发压力的加大,以及性能测试时间的延长,系统性能所发生的变化.正常情况下,平均采样响应时长曲线应该是平滑的,并大致平行于图像下边界. 异常 ...
- 在rhel6上安装Python 2.7和Python 3.3
安装前,操作系统软件包准备编译python要安装development tools.此外,还要安装一些其他的libs,没有这些libs,python的interpreter可能会无法正常工作 # yu ...
- Android应用如何适配不同分辨率的手机
主要分三块考虑 1 )界面配置 根据不同的分辨率,创建手机界面文件 例子: 在res下创建 layout-800x480 layout-480x320 并在各自不 ...
- C#趣味程序---车牌号推断
甲说前两位同样,乙说后两位同样,丙说四位的车牌号刚好是一个数的平方.这个车牌号是多少? using System; namespace ConsoleApplication1 { class Prog ...
- Walkthrough: Writing a Visualizer in C#
https://msdn.microsoft.com/en-us/library/ms164759.aspx