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); } }
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; }
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); }