コード例 #1
0
        private void BtnLoad_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "配置文件|*.xml";
            ofd.ShowDialog();

            if (!String.IsNullOrWhiteSpace(ofd.FileName))
            {
                XDocument doc = XDocument.Load(ofd.FileName);

                hexSlider.Ranges.Clear();
                ResetRangePanel(false);

                foreach (var element in doc.XPathSelectElements(@"HexConvert/Range"))
                {
                    hexSlider.Ranges.Add(Convert.ToInt32(element.Attribute("value").Value));
                    var pan = new RangePanel();
                    pan.Color         = (Color)ColorConverter.ConvertFromString(element.Attribute("color").Value);
                    pan.Comment       = element.Value;
                    pan.ValueChanged += RangePanel_ValueChanged;

                    panRangeControls.Children.Insert(panRangeControls.Children.Count - 1, pan);
                }

                var comment = doc.XPathSelectElement(@"HexConvert/Comment");
                txtComment.Text = comment.Value;

                var hold = doc.XPathSelectElement(@"HexConvert/Holding");
                ValueHold = Convert.ToInt64(hold.Attribute("value").Value);

                RefreshControls(this);
            }
        }
コード例 #2
0
        protected void GenerateVisualChildren()
        {
            if (_visualChildrenGenerated)
            {
                return;
            }

            if (_visualChildren == null)
            {
                _visualChildren = CreateUIElementCollection(null);
            }
            else
            {
                _visualChildren.Clear();
            }

            RangePanel panel = new RangePanel();

            // PERIOD
            panel.SetBinding(RangePanel.MinimumHeightProperty, new Binding("BeginDate.Ticks")
            {
                Source = Period
            });
            panel.SetBinding(RangePanel.MaximumHeightProperty, new Binding("EndDate.Ticks")
            {
                Source = Period
            });



            foreach (ListViewItem item in ContentPresenter.ListViewItemVisuals)
            {
                if (CalendarView.PeriodContainsItem(item, Period))
                {
                    item.SetValue(RangePanel.StartProperty, Convert.ToDouble(((DateTime)item.GetValue(CalendarView.BeginDateProperty)).Ticks));
                    item.SetValue(RangePanel.FinishProperty, Convert.ToDouble(((DateTime)item.GetValue(CalendarView.EndDateProperty)).Ticks));
                    item.SetValue(RangePanel.StartDayOfYearProperty, Convert.ToDateTime(item.GetValue(CalendarView.BeginDateProperty)).DayOfYear);
                    item.SetValue(RangePanel.FinishDayOfYearProperty, Convert.ToDateTime(item.GetValue(CalendarView.EndDateProperty)).DayOfYear);

                    panel.Children.Add(item);
                }
            }

            Border border = new Border
            {
                BorderBrush     = Brushes.Orange,
                BorderThickness = new Thickness(2.0),
                CornerRadius    = new CornerRadius(10, 10, 10, 10),
                Child           = panel
            };

            _visualChildren.Add(border);

            _visualChildrenGenerated = true;
        }
コード例 #3
0
        private void ToolButton_AddClick(object sender, RoutedEventArgs e)
        {
            var newElement = new RangePanel();

            newElement.ValueChanged += RangePanel_ValueChanged;
            panRangeControls.Children.Insert(panRangeControls.Children.Count - 2, newElement);
            var val = hexSlider.Ranges.Last();

            hexSlider.Ranges[hexSlider.Ranges.Count - 1] = val / 2;
            hexSlider.Ranges.Add(val - val / 2);


            RefreshControls(hexSlider);
        }