Exemple #1
0
        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());
            }
        }
Exemple #2
0
        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 { }
        }