internal void SetResolution() { ResolutionStruct rs = ListResolution[SelectedIndex]; Utility.PlaySound("clickDown"); DoubleAnimation daO = new DoubleAnimation() { From = 1, To = 0.5, AutoReverse = true, Duration = TimeSpan.FromSeconds(0.3) }; img.BeginAnimation(OpacityProperty, daO); text.BeginAnimation(OpacityProperty, daO); Utility.INIFILE.SetValue("MAIN", "Resolution", rs.width.ToString() + "*" + rs.height.ToString()); r.setResolution(rs.width, rs.height, rs.frequence, rs.bitNum); if (UpdateResolution != null) { UpdateResolution(this, new EventArgs()); } }
public void InitializeSlider() { try { List <TVMWPFLab.Control.Resolution.DEVMODE> allMode = new List <TVMWPFLab.Control.Resolution.DEVMODE>(); allMode = r.getAllResolution(); List <string> ListSize = new List <string>(); List <string> ListResolutionDesc0 = new List <string>(); ListResolution = new List <ResolutionStruct>(); foreach (Resolution.DEVMODE dm in allMode) { ResolutionStruct rs = new ResolutionStruct(); //string sitem = dm.dmPelsWidth + "," + dm.dmPelsHeight + "," + dm.dmDisplayFrequency + "Hz," + dm.dmBitsPerPel + "位"; string sitem = dm.dmPelsWidth + "," + dm.dmPelsHeight; if (!ListSize.Contains(sitem)) { ListSize.Add(sitem); } } for (int i = 0; i < ListSize.Count; i++) { string size = ListSize[i]; List <string> ListSt = new List <string>(); foreach (Resolution.DEVMODE dm in allMode) { string sitem = dm.dmPelsWidth + "," + dm.dmPelsHeight + "," + dm.dmDisplayFrequency + "," + dm.dmBitsPerPel; if (sitem.Contains(size)) { ListSt.Add(sitem); } } ListResolutionDesc0.Add(ListSt.Last()); } List <string> ListResolutionDesc1 = new List <string>(); for (int i = 0; i < ListResolutionDesc0.Count; i++) { double width = double.Parse(ListResolutionDesc0[i].Split(',')[0]); if (width >= 1024) { ListResolutionDesc1.Add(ListResolutionDesc0[i]); } } if (ListResolutionDesc1.Count < 6) { ListResolutionDesc0.RemoveRange(0, ListResolutionDesc0.Count - 6); ListResolutionDesc1.Clear(); ListResolutionDesc1 = ListResolutionDesc0; } foreach (string item in ListResolutionDesc1) { int _width = int.Parse(item.Split(',')[0]); int _height = int.Parse(item.Split(',')[1]); int _freq = int.Parse(item.Split(',')[2]); int _mybit = int.Parse(item.Split(',')[3]); ResolutionStruct rs = new ResolutionStruct() { width = _width, height = _height, frequence = _freq, bitNum = _mybit }; ListResolution.Add(rs); } double gap = (this.Width - ListResolution.Count * traceWidth) / (ListResolution.Count - 1); List <Image> ListImage = new List <Image>(); for (int i = 0; i < ListResolution.Count; i++) { Image img = new Image() { Width = 14, Height = 22 }; img.Source = Utility.GetReleativeImageSource(@"/Images/刻度.png"); if ((i + 1) != ListResolution.Count) { img.Margin = new Thickness(0, 0, gap, 0); } else { img.Margin = new Thickness(0, 0, 0, 0); } ListImage.Add(img); stack.Children.Add(img); } for (int i = 0; i < ListResolution.Count; i++) { double sysWidth = SystemParameters.PrimaryScreenWidth; double sysHeight = SystemParameters.PrimaryScreenHeight; if (ListResolution[i].width == sysWidth && ListResolution[i].height == sysHeight) { SelectedIndex = i; break; } } DispatcherTimer dt = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(0.2) }; dt.Tick += delegate { dt.Stop(); for (int i = 0; i < ListImage.Count; i++) { Point pt = ListImage[i].TranslatePoint(new Point(0, 0), this); ListX.Add(pt.X); } MoveTo(); }; dt.Start(); } catch { } }