From 015d89f201800a275feacf8eccedfd58fb1a59ca Mon Sep 17 00:00:00 2001 From: BoucherS_cp Date: Tue, 13 Dec 2016 13:51:44 +0000 Subject: [PATCH] --- .../AssemblyVersionInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 6 +- .../AssemblyVersionInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 6 +- .../AssemblyVersionInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 6 +- .../AssemblyVersionInfo.cs | 2 +- .../Controls/LayoutFloatingWindowControl.cs | 173 +- .../Xceed.Wpf.AvalonDock/DockingManager.cs | 29 + .../Properties/AssemblyInfo.cs | 6 +- .../Xceed.Wpf.DataGrid/AssemblyVersionInfo.cs | 2 +- .../Properties/AssemblyInfo.cs | 6 +- .../Xceed.Wpf.Toolkit.LiveExplorer/App.ico | Bin 317270 -> 31356 bytes .../Xceed.Wpf.Toolkit.LiveExplorer/App.xaml | 6 +- .../App.xaml.cs | 6 +- .../Xceed.Wpf.Toolkit.LiveExplorer/CodeBox.cs | 6 +- .../AutoSelectTextboxView.xaml.cs.txt | 6 +- .../CodeFiles/AutoSelectTextboxView.xaml.txt | 6 +- .../CodeFiles/AvalonDockView.xaml.cs.txt | 6 +- .../CodeFiles/AvalonDockView.xaml.txt | 6 +- ...catorCustomContentTemplateView.xaml.cs.txt | 6 +- ...ndicatorCustomContentTemplateView.xaml.txt | 6 +- ...BusyIndicatorCustomContentView.xaml.cs.txt | 6 +- .../BusyIndicatorCustomContentView.xaml.txt | 6 +- .../CodeFiles/BusyIndicatorView.xaml.cs.txt | 6 +- .../CodeFiles/BusyIndicatorView.xaml.txt | 6 +- .../CodeFiles/ButtonSpinnerView.xaml.cs.txt | 6 +- .../CodeFiles/ButtonSpinnerView.xaml.txt | 6 +- .../CodeFiles/CalculatorView.xaml.cs.txt | 6 +- .../CodeFiles/CalculatorView.xaml.txt | 6 +- .../CodeFiles/ChartAxisView.xaml.cs.txt | 6 +- .../CodeFiles/ChartAxisView.xaml.txt | 10 +- .../CodeFiles/ChartLegendView.xaml.cs.txt | 6 +- .../CodeFiles/ChartLegendView.xaml.txt | 10 +- .../ChartSeriesBasicTypesView.xaml.cs.txt | 6 +- .../ChartSeriesBasicTypesView.xaml.txt | 10 +- ...artSeriesDataPointsBindingView.xaml.cs.txt | 6 +- .../ChartSeriesDataPointsBindingView.xaml.txt | 10 +- .../ChartStylingAxesGridView.xaml.cs.txt | 6 +- .../ChartStylingAxesGridView.xaml.txt | 10 +- .../ChartStylingColumnSeriesView.xaml.cs.txt | 6 +- .../ChartStylingColumnSeriesView.xaml.txt | 10 +- .../ChartStylingLineSeriesView.xaml.cs.txt | 6 +- .../ChartStylingLineSeriesView.xaml.txt | 10 +- .../ChartStylingPieSeriesView.xaml.cs.txt | 6 +- .../ChartStylingPieSeriesView.xaml.txt | 10 +- .../CodeFiles/CheckListsView.xaml.cs.txt | 6 +- .../CodeFiles/CheckListsView.xaml.txt | 6 +- .../CodeFiles/ChildWindowView.xaml.cs.txt | 6 +- .../CodeFiles/ChildWindowView.xaml.txt | 10 +- .../CodeFiles/ColorView.xaml.cs.txt | 6 +- .../CodeFiles/ColorView.xaml.txt | 6 +- .../CodeFiles/DataGridView.xaml.cs.txt | 6 +- .../CodeFiles/DataGridView.xaml.txt | 8 +- .../CodeFiles/DateTimeView.xaml.cs.txt | 8 +- .../CodeFiles/DateTimeView.xaml.txt | 10 +- .../DropDownSplitButtonView.xaml.cs.txt | 6 +- .../DropDownSplitButtonView.xaml.txt | 46 +- .../CodeFiles/FilePickerView.xaml.cs.txt | 6 +- .../CodeFiles/FilePickerView.xaml.txt | 10 +- .../CodeFiles/ListBoxView.xaml.cs.txt | 6 +- .../CodeFiles/ListBoxView.xaml.txt | 10 +- .../CodeFiles/MagnifierView.xaml.cs.txt | 6 +- .../CodeFiles/MagnifierView.xaml.txt | 8 +- .../CodeFiles/MaskedTextboxView.xaml.cs.txt | 6 +- .../CodeFiles/MaskedTextboxView.xaml.txt | 6 +- .../CodeFiles/MaterialButtonView.xaml.cs.txt | 6 +- .../CodeFiles/MaterialButtonView.xaml.txt | 10 +- .../MaterialCheckBoxView.xaml.cs.txt | 6 +- .../CodeFiles/MaterialCheckBoxView.xaml.txt | 10 +- .../MaterialComboBoxView.xaml.cs.txt | 6 +- .../CodeFiles/MaterialComboBoxView.xaml.txt | 10 +- .../MaterialControlsView.xaml.cs.txt | 6 +- .../CodeFiles/MaterialControlsView.xaml.txt | 10 +- .../CodeFiles/MaterialDemoView.cs.txt | 6 +- .../MaterialDropDownView.xaml.cs.txt | 6 +- .../CodeFiles/MaterialDropDownView.xaml.txt | 10 +- .../CodeFiles/MaterialFrameView.xaml.cs.txt | 6 +- .../CodeFiles/MaterialFrameView.xaml.txt | 10 +- .../CodeFiles/MaterialListBoxView.xaml.cs.txt | 6 +- .../CodeFiles/MaterialListBoxView.xaml.txt | 10 +- ...aterialProgressBarCircularView.xaml.cs.txt | 6 +- .../MaterialProgressBarCircularView.xaml.txt | 10 +- .../MaterialProgressBarView.xaml.cs.txt | 6 +- .../MaterialProgressBarView.xaml.txt | 10 +- .../MaterialRadioButtonView.xaml.cs.txt | 6 +- .../MaterialRadioButtonView.xaml.txt | 10 +- .../CodeFiles/MaterialSliderView.xaml.cs.txt | 6 +- .../CodeFiles/MaterialSliderView.xaml.txt | 10 +- .../CodeFiles/MaterialSwitchView.xaml.cs.txt | 6 +- .../CodeFiles/MaterialSwitchView.xaml.txt | 10 +- .../CodeFiles/MaterialTabsView.xaml.cs.txt | 6 +- .../CodeFiles/MaterialTabsView.xaml.txt | 10 +- .../MaterialTextFieldView.xaml.cs.txt | 6 +- .../CodeFiles/MaterialTextFieldView.xaml.txt | 10 +- .../CodeFiles/MaterialToastView.xaml.cs.txt | 6 +- .../CodeFiles/MaterialToastView.xaml.txt | 10 +- .../CodeFiles/MaterialToolTipView.xaml.cs.txt | 6 +- .../CodeFiles/MaterialToolTipView.xaml.txt | 10 +- .../CodeFiles/MultiCalendarView.xaml.cs.txt | 45 + .../CodeFiles/MultiCalendarView.xaml.txt | 108 ++ .../MultiColumnComboBoxView.xaml.cs.txt | 6 +- .../MultiColumnComboBoxView.xaml.txt | 10 +- .../MultiLineTextEditorView.xaml.cs.txt | 6 +- .../MultiLineTextEditorView.xaml.txt | 6 +- .../CodeFiles/NumericView.xaml.cs.txt | 6 +- .../CodeFiles/NumericView.xaml.txt | 7 +- .../CodeFiles/PieChartView.xaml.cs.txt | 6 +- .../CodeFiles/PieChartView.xaml.txt | 6 +- .../CodeFiles/PieProgressView.xaml.cs.txt | 6 +- .../CodeFiles/PieProgressView.xaml.txt | 8 +- .../CodeFiles/PieView.xaml.cs.txt | 6 +- .../CodeFiles/PieView.xaml.txt | 8 +- .../CodeFiles/PileFlowPanelView.xaml.cs.txt | 6 +- .../CodeFiles/PileFlowPanelView.xaml.txt | 10 +- .../PropertyGridAttributesView.xaml.cs.txt | 24 +- .../PropertyGridAttributesView.xaml.txt | 6 +- ...opertyGridBindingToStructsView.xaml.cs.txt | 6 +- .../PropertyGridBindingToStructsView.xaml.txt | 6 +- .../PropertyGridCategoryOrderView.xaml.cs.txt | 6 +- .../PropertyGridCategoryOrderView.xaml.txt | 6 +- .../PropertyGridCustomEditorsView.xaml.cs.txt | 6 +- .../PropertyGridCustomEditorsView.xaml.txt | 6 +- ...PropertyGridCustomPropertyView.xaml.cs.txt | 6 +- .../PropertyGridCustomPropertyView.xaml.txt | 10 +- ...PropertyGridDefaultEditorsView.xaml.cs.txt | 20 +- .../PropertyGridDefaultEditorsView.xaml.txt | 6 +- .../PropertyGridDefinitionKeyView.xaml.cs.txt | 6 +- .../PropertyGridDefinitionKeyView.xaml.txt | 10 +- ...rtyGridDisplayLocalizationView.xaml.cs.txt | 6 +- ...opertyGridDisplayLocalizationView.xaml.txt | 10 +- ...pertyGridEditorDefinitionsView.xaml.cs.txt | 6 +- ...PropertyGridEditorDefinitionsView.xaml.txt | 10 +- ...tyGridMultiSelectedObjectsView.xaml.cs.txt | 6 +- ...pertyGridMultiSelectedObjectsView.xaml.txt | 10 +- ...opertyGridPropertiesSourceView.xaml.cs.txt | 6 +- .../PropertyGridPropertiesSourceView.xaml.txt | 10 +- .../PropertyGridPropertiesView.xaml.cs.txt | 6 +- .../PropertyGridPropertiesView.xaml.txt | 10 +- ...pertyGridPropertyItemStyleView.xaml.cs.txt | 6 +- ...PropertyGridPropertyItemStyleView.xaml.txt | 6 +- ...PropertyGridSelectedObjectView.xaml.cs.txt | 6 +- .../PropertyGridSelectedObjectView.xaml.txt | 6 +- ...tyGridSpecifyingPropertiesView.xaml.cs.txt | 6 +- ...pertyGridSpecifyingPropertiesView.xaml.txt | 6 +- .../CodeFiles/PropertyGridView.xaml.cs.txt | 6 +- .../CodeFiles/PropertyGridView.xaml.txt | 6 +- .../CodeFiles/RadialGaugeView.xaml.cs.txt | 6 +- .../CodeFiles/RadialGaugeView.xaml.txt | 10 +- .../CodeFiles/RangeSliderView.xaml.cs.txt | 6 +- .../CodeFiles/RangeSliderView.xaml.txt | 6 +- .../CodeFiles/RatingView.xaml.cs.txt | 6 +- .../CodeFiles/RatingView.xaml.txt | 10 +- .../CodeFiles/RichTextboxView.xaml.cs.txt | 6 +- .../CodeFiles/RichTextboxView.xaml.txt | 6 +- .../CodeFiles/SlideShowView.xaml.cs.txt | 6 +- .../CodeFiles/SlideShowView.xaml.txt | 10 +- .../CodeFiles/StyleableWindowView.xaml.cs.txt | 29 +- .../CodeFiles/StyleableWindowView.xaml.txt | 16 +- .../CodeFiles/SwitchPanelView.xaml.cs.txt | 6 +- .../CodeFiles/SwitchPanelView.xaml.txt | 13 +- .../ThemingAvalonDockView.xaml.cs.txt | 6 +- .../CodeFiles/ThemingAvalonDockView.xaml.txt | 14 +- .../CodeFiles/ThemingCoreWPFView.xaml.cs.txt | 6 +- .../CodeFiles/ThemingCoreWPFView.xaml.txt | 10 +- .../CodeFiles/ThemingDataGridView.xaml.cs.txt | 6 +- .../CodeFiles/ThemingDataGridView.xaml.txt | 10 +- .../ThemingExtendedToolkitView.xaml.cs.txt | 6 +- .../ThemingExtendedToolkitView.xaml.txt | 14 +- .../CodeFiles/ThemingListBoxView.xaml.cs.txt | 6 +- .../CodeFiles/ThemingListBoxView.xaml.txt | 10 +- .../CodeFiles/TimeSpanView.xaml.cs.txt | 6 +- .../CodeFiles/TimeSpanView.xaml.txt | 6 +- .../CodeFiles/TimelinePanelView.xaml.cs.txt | 6 +- .../CodeFiles/TimelinePanelView.xaml.txt | 6 +- .../CodeFiles/ToggleSwitchView.xaml.cs.txt | 6 +- .../CodeFiles/ToggleSwitchView.xaml.txt | 10 +- .../TokenizedTextBoxView.xaml.cs.txt | 6 +- .../CodeFiles/TokenizedTextBoxView.xaml.txt | 10 +- .../WatermarkComboBoxView.xaml.cs.txt | 6 +- .../CodeFiles/WatermarkComboBoxView.xaml.txt | 6 +- .../WatermarkPasswordBoxView.xaml.cs.txt | 39 + .../WatermarkPasswordBoxView.xaml.txt | 146 ++ .../WatermarkTextboxView.xaml.cs.txt | 6 +- .../CodeFiles/WatermarkTextboxView.xaml.txt | 6 +- .../CodeFiles/WindowContainerView.xaml.cs.txt | 6 +- .../CodeFiles/WindowContainerView.xaml.txt | 6 +- .../CodeFiles/WizardView.xaml.cs.txt | 6 +- .../CodeFiles/WizardView.xaml.txt | 6 +- .../CodeFiles/ZoomboxView.xaml.cs.txt | 6 +- .../CodeFiles/ZoomboxView.xaml.txt | 8 +- .../Core/CSharpFormatter.cs | 6 +- .../Core/LiveExplorerTreeViewItem.cs | 6 +- .../Core/XamlFormatter.cs | 6 +- .../DemoView.cs | 6 +- .../HomeView.xaml | 6 +- .../HomeView.xaml.cs | 6 +- .../MainWindow.xaml | 55 +- .../MainWindow.xaml.cs | 6 +- .../Properties/AssemblyInfo.cs | 10 +- .../Properties/Resources.resx | 10 +- .../Resources/LiveExplorerScrollViewer.xaml | 6 +- .../Resources/TextBlockStyles.xaml | 9 +- .../Resources/toolkitIcon.png | Bin 0 -> 40063 bytes .../AvalonDock/Views/AvalonDockView.xaml | 6 +- .../AvalonDock/Views/AvalonDockView.xaml.cs | 6 +- .../Converters/IntegerToTimespanConverter.cs | 6 +- .../BusyIndicator/Resources/Common.xaml | 6 +- ...usyIndicatorCustomContentTemplateView.xaml | 6 +- ...IndicatorCustomContentTemplateView.xaml.cs | 6 +- .../Views/BusyIndicatorCustomContentView.xaml | 6 +- .../BusyIndicatorCustomContentView.xaml.cs | 6 +- .../Views/BusyIndicatorView.xaml | 6 +- .../Views/BusyIndicatorView.xaml.cs | 6 +- .../Button/Views/ButtonSpinnerView.xaml | 6 +- .../Button/Views/ButtonSpinnerView.xaml.cs | 6 +- .../Button/Views/DropDownSplitButtonView.xaml | 46 +- .../Views/DropDownSplitButtonView.xaml.cs | 6 +- .../Calculator/Views/CalculatorView.xaml | 6 +- .../Calculator/Views/CalculatorView.xaml.cs | 6 +- .../GraduationModeToComboBoxConverter.cs | 6 +- .../Samples/Chart/Views/ChartAxisView.xaml | 10 +- .../Samples/Chart/Views/ChartAxisView.xaml.cs | 6 +- .../Samples/Chart/Views/ChartLegendView.xaml | 10 +- .../Chart/Views/ChartLegendView.xaml.cs | 6 +- .../Views/ChartSeriesBasicTypesView.xaml | 10 +- .../Views/ChartSeriesBasicTypesView.xaml.cs | 6 +- .../ChartSeriesDataPointsBindingView.xaml | 10 +- .../ChartSeriesDataPointsBindingView.xaml.cs | 6 +- .../Chart/Views/ChartStylingAxesGridView.xaml | 10 +- .../Views/ChartStylingAxesGridView.xaml.cs | 6 +- .../Views/ChartStylingColumnSeriesView.xaml | 10 +- .../ChartStylingColumnSeriesView.xaml.cs | 6 +- .../Views/ChartStylingLineSeriesView.xaml | 10 +- .../Views/ChartStylingLineSeriesView.xaml.cs | 6 +- .../Views/ChartStylingPieSeriesView.xaml | 10 +- .../Views/ChartStylingPieSeriesView.xaml.cs | 6 +- .../CheckLists/Views/CheckListsView.xaml | 6 +- .../CheckLists/Views/CheckListsView.xaml.cs | 6 +- .../Samples/Color/Views/ColorView.xaml | 6 +- .../Samples/Color/Views/ColorView.xaml.cs | 6 +- .../DataGrid/Converters/FlagPathConverter.cs | 6 +- .../DataGrid/UniqueIDCellValidationRule.cs | 6 +- .../Samples/DataGrid/Views/DataGridView.xaml | 8 +- .../DataGrid/Views/DataGridView.xaml.cs | 6 +- .../Views/MultiColumnComboBoxView.xaml | 10 +- .../Views/MultiColumnComboBoxView.xaml.cs | 6 +- .../Converters/CustomFormatToBoolConverter.cs | 6 +- .../Converters/DateTimeToTimeSpanConverter.cs | 6 +- .../Samples/DateTime/Views/DateTimeView.xaml | 10 +- .../DateTime/Views/DateTimeView.xaml.cs | 8 +- .../FilePicker/Views/FilePickerView.xaml | 10 +- .../FilePicker/Views/FilePickerView.xaml.cs | 6 +- .../Samples/Gauge/Views/RadialGaugeView.xaml | 10 +- .../Gauge/Views/RadialGaugeView.xaml.cs | 6 +- .../Converters/BoxArtImageSourceConverter.cs | 6 +- .../Samples/ListBox/Views/ListBoxView.xaml | 10 +- .../Samples/ListBox/Views/ListBoxView.xaml.cs | 6 +- .../Magnifier/Converters/ColorConverter.cs | 6 +- .../Converters/VisibilityConverter.cs | 6 +- .../Magnifier/Views/MagnifierView.xaml | 8 +- .../Magnifier/Views/MagnifierView.xaml.cs | 6 +- .../Converters/EqualsMinusOneConverter.cs | 6 +- .../MaterialControls/Data/RequiredRule.cs | 6 +- .../Resources/CommonResources.xaml | 6 +- .../Views/MaterialButtonView.xaml | 10 +- .../Views/MaterialButtonView.xaml.cs | 6 +- .../Views/MaterialCheckBoxView.xaml | 10 +- .../Views/MaterialCheckBoxView.xaml.cs | 6 +- .../Views/MaterialComboBoxView.xaml | 10 +- .../Views/MaterialComboBoxView.xaml.cs | 6 +- .../Views/MaterialControlsView.xaml | 10 +- .../Views/MaterialControlsView.xaml.cs | 6 +- .../Views/MaterialDemoView.cs | 6 +- .../Views/MaterialDropDownView.xaml | 10 +- .../Views/MaterialDropDownView.xaml.cs | 6 +- .../Views/MaterialFrameView.xaml | 10 +- .../Views/MaterialFrameView.xaml.cs | 6 +- .../Views/MaterialListBoxView.xaml | 10 +- .../Views/MaterialListBoxView.xaml.cs | 6 +- .../MaterialProgressBarCircularView.xaml | 10 +- .../MaterialProgressBarCircularView.xaml.cs | 6 +- .../Views/MaterialProgressBarView.xaml | 10 +- .../Views/MaterialProgressBarView.xaml.cs | 6 +- .../Views/MaterialRadioButtonView.xaml | 10 +- .../Views/MaterialRadioButtonView.xaml.cs | 6 +- .../Views/MaterialSliderView.xaml | 10 +- .../Views/MaterialSliderView.xaml.cs | 6 +- .../Views/MaterialSwitchView.xaml | 10 +- .../Views/MaterialSwitchView.xaml.cs | 6 +- .../Views/MaterialTabsView.xaml | 10 +- .../Views/MaterialTabsView.xaml.cs | 6 +- .../Views/MaterialTextFieldView.xaml | 10 +- .../Views/MaterialTextFieldView.xaml.cs | 6 +- .../Views/MaterialToastView.xaml | 10 +- .../Views/MaterialToastView.xaml.cs | 6 +- .../Views/MaterialToolTipView.xaml | 10 +- .../Views/MaterialToolTipView.xaml.cs | 6 +- .../OpenSourceImages/MultiCalendar.png | Bin 0 -> 107574 bytes .../Samples/MultiCalendar/Resources/April.jpg | Bin 0 -> 5213 bytes .../MultiCalendar/Resources/December.jpg | Bin 0 -> 19148 bytes .../MultiCalendar/Resources/February.jpg | Bin 0 -> 7711 bytes .../Samples/MultiCalendar/Resources/July.jpg | Bin 0 -> 7323 bytes .../Samples/MultiCalendar/Resources/June.jpg | Bin 0 -> 3602 bytes .../Samples/MultiCalendar/Resources/March.jpg | Bin 0 -> 4509 bytes .../MultiCalendar/Resources/October.jpg | Bin 0 -> 8172 bytes .../MultiCalendar/Resources/September.jpg | Bin 0 -> 17026 bytes .../Views/MultiCalendarView.xaml | 108 ++ .../Views/MultiCalendarView.xaml.cs | 45 + .../Samples/Numeric/Views/NumericView.xaml | 7 +- .../Samples/Numeric/Views/NumericView.xaml.cs | 6 +- .../ComboBoxToVisibilityConverter.cs | 6 +- .../Samples/Panels/Views/SwitchPanelView.xaml | 13 +- .../Panels/Views/SwitchPanelView.xaml.cs | 6 +- .../Pie/Converters/SliceLabelConverter.cs | 6 +- .../Samples/Pie/Views/PieChartView.xaml | 6 +- .../Samples/Pie/Views/PieChartView.xaml.cs | 6 +- .../Samples/Pie/Views/PieProgressView.xaml | 8 +- .../Samples/Pie/Views/PieProgressView.xaml.cs | 6 +- .../Samples/Pie/Views/PieView.xaml | 8 +- .../Samples/Pie/Views/PieView.xaml.cs | 6 +- .../Converters/FullNameStringConverter.cs | 6 +- .../Views/PileFlowPanelView.xaml | 10 +- .../Views/PileFlowPanelView.xaml.cs | 6 +- .../Converters/DimensionConverter.cs | 6 +- .../Resources/LastNameUserControlEditor.xaml | 6 +- .../LastNameUserControlEditor.xaml.cs | 6 +- .../Views/PropertyGridAttributesView.xaml | 6 +- .../Views/PropertyGridAttributesView.xaml.cs | 24 +- .../PropertyGridBindingToStructsView.xaml | 6 +- .../PropertyGridBindingToStructsView.xaml.cs | 6 +- .../Views/PropertyGridCategoryOrderView.xaml | 6 +- .../PropertyGridCategoryOrderView.xaml.cs | 6 +- .../Views/PropertyGridCustomEditorsView.xaml | 6 +- .../PropertyGridCustomEditorsView.xaml.cs | 6 +- .../Views/PropertyGridCustomPropertyView.xaml | 10 +- .../PropertyGridCustomPropertyView.xaml.cs | 6 +- .../Views/PropertyGridDefaultEditorsView.xaml | 6 +- .../PropertyGridDefaultEditorsView.xaml.cs | 20 +- .../Views/PropertyGridDefinitionKeyView.xaml | 10 +- .../PropertyGridDefinitionKeyView.xaml.cs | 6 +- .../PropertyGridDisplayLocalizationView.xaml | 10 +- ...ropertyGridDisplayLocalizationView.xaml.cs | 6 +- .../PropertyGridEditorDefinitionsView.xaml | 10 +- .../PropertyGridEditorDefinitionsView.xaml.cs | 6 +- .../PropertyGridMultiSelectedObjectsView.xaml | 10 +- ...opertyGridMultiSelectedObjectsView.xaml.cs | 6 +- .../PropertyGridPropertiesSourceView.xaml | 10 +- .../PropertyGridPropertiesSourceView.xaml.cs | 6 +- .../Views/PropertyGridPropertiesView.xaml | 10 +- .../Views/PropertyGridPropertiesView.xaml.cs | 6 +- .../PropertyGridPropertyItemStyleView.xaml | 6 +- .../PropertyGridPropertyItemStyleView.xaml.cs | 6 +- .../Views/PropertyGridSelectedObjectView.xaml | 6 +- .../PropertyGridSelectedObjectView.xaml.cs | 6 +- .../PropertyGridSpecifyingPropertiesView.xaml | 6 +- ...opertyGridSpecifyingPropertiesView.xaml.cs | 6 +- .../PropertyGrid/Views/PropertyGridView.xaml | 6 +- .../Views/PropertyGridView.xaml.cs | 6 +- .../RangeSlider/Views/RangeSliderView.xaml | 6 +- .../RangeSlider/Views/RangeSliderView.xaml.cs | 6 +- .../Samples/Rating/Views/RatingView.xaml | 10 +- .../Samples/Rating/Views/RatingView.xaml.cs | 6 +- .../SlideShow/Views/SlideShowView.xaml | 10 +- .../SlideShow/Views/SlideShowView.xaml.cs | 6 +- .../Text/Views/AutoSelectTextboxView.xaml | 6 +- .../Text/Views/AutoSelectTextboxView.xaml.cs | 6 +- .../Samples/Text/Views/MaskedTextboxView.xaml | 6 +- .../Text/Views/MaskedTextboxView.xaml.cs | 6 +- .../Text/Views/MultiLineTextEditorView.xaml | 6 +- .../Views/MultiLineTextEditorView.xaml.cs | 6 +- .../Samples/Text/Views/RichTextboxView.xaml | 6 +- .../Text/Views/RichTextboxView.xaml.cs | 6 +- .../Text/Views/TokenizedTextBoxView.xaml | 10 +- .../Text/Views/TokenizedTextBoxView.xaml.cs | 6 +- .../Text/Views/WatermarkPasswordBoxView.xaml | 146 ++ .../Views/WatermarkPasswordBoxView.xaml.cs | 39 + .../Text/Views/WatermarkTextboxView.xaml | 6 +- .../Text/Views/WatermarkTextboxView.xaml.cs | 6 +- .../Theming/Converters/FlagPathConverter.cs | 6 +- .../Theming/Views/ThemingAvalonDockView.xaml | 14 +- .../Views/ThemingAvalonDockView.xaml.cs | 6 +- .../Theming/Views/ThemingCoreWPFView.xaml | 10 +- .../Theming/Views/ThemingCoreWPFView.xaml.cs | 6 +- .../Theming/Views/ThemingDataGridView.xaml | 10 +- .../Theming/Views/ThemingDataGridView.xaml.cs | 6 +- .../Views/ThemingExtendedToolkitView.xaml | 14 +- .../Views/ThemingExtendedToolkitView.xaml.cs | 6 +- .../Theming/Views/ThemingListBoxView.xaml | 10 +- .../Theming/Views/ThemingListBoxView.xaml.cs | 6 +- .../Samples/TimeSpan/Views/TimeSpanView.xaml | 6 +- .../TimeSpan/Views/TimeSpanView.xaml.cs | 6 +- .../Views/TimelinePanelView.xaml | 6 +- .../Views/TimelinePanelView.xaml.cs | 6 +- .../ToggleSwitch/Views/ToggleSwitchView.xaml | 10 +- .../Views/ToggleSwitchView.xaml.cs | 6 +- .../Views/WatermarkComboBoxView.xaml | 6 +- .../Views/WatermarkComboBoxView.xaml.cs | 6 +- .../Window/Converters/IntToBoolConverter.cs | 6 +- .../Converters/WindowStateToBoolConverter.cs | 6 +- .../Samples/Window/Resources/FancyStyles.xaml | 6 +- .../Window/Resources/WindowModelEditor.xaml | 18 +- .../Resources/WindowModelEditor.xaml.cs | 6 +- .../Samples/Window/Views/ChildWindowView.xaml | 10 +- .../Window/Views/ChildWindowView.xaml.cs | 6 +- .../Window/Views/StyleableWindowView.xaml | 16 +- .../Window/Views/StyleableWindowView.xaml.cs | 29 +- .../Window/Views/WindowContainerView.xaml | 6 +- .../Window/Views/WindowContainerView.xaml.cs | 6 +- .../Samples/Wizard/Views/WizardView.xaml | 6 +- .../Samples/Wizard/Views/WizardView.xaml.cs | 6 +- .../Zoombox/Converters/PointConverter.cs | 6 +- .../Zoombox/Converters/RectConverter.cs | 6 +- .../Zoombox/Converters/SimpleConverter.cs | 6 +- .../Zoombox/Converters/ViewFinderConverter.cs | 6 +- .../Zoombox/Converters/ViewNameConverter.cs | 6 +- .../Converters/ViewStackCountConverter.cs | 6 +- .../Samples/Zoombox/Views/ZoomboxView.xaml | 8 +- .../Samples/Zoombox/Views/ZoomboxView.xaml.cs | 6 +- .../Xceed.Wpf.Toolkit.LiveExplorer.csproj | 42 +- .../Xceed.Wpf.Toolkit/AssemblyVersionInfo.cs | 2 +- .../Implementation/CalculatorUpDown.cs | 25 +- .../Themes/Aero2.NormalColor.xaml | 10 +- .../CalculatorUpDown/Themes/Generic.xaml | 11 +- .../ChildWindow/Implementation/ChildWindow.cs | 47 + .../ChildWindow/Themes/Aero2.NormalColor.xaml | 3 +- .../ChildWindow/Themes/Generic.xaml | 3 +- .../Implementation/CollectionControl.cs | 149 +- .../Implementation/CollectionControlButton.cs | 8 +- .../CollectionControlDialog.xaml.cs | 112 +- .../Themes/Aero2.NormalColor.xaml | 23 +- .../CollectionControl/Themes/Generic.xaml | 21 +- .../ColorPicker/Implementation/ColorPicker.cs | 6 + .../ColorPicker/Themes/Aero2.NormalColor.xaml | 10 +- .../ColorPicker/Themes/Generic.xaml | 10 +- .../ThicknessSideRemovalConverter.cs | 50 + .../Core/EditableKeyValuePair.cs | 96 ++ .../Core/Utilities/ListUtilities.cs | 44 + .../Core/VersionResourceDictionary.cs | 2 +- .../Implementation/DateTimePicker.cs | 38 +- .../Themes/Aero2.NormalColor.xaml | 15 +- .../DateTimePicker/Themes/Generic.xaml | 18 +- .../Implementation/DateTimeParser.cs | 40 +- .../Implementation/DateTimeUpDown.cs | 159 +- .../Implementation/DropDownButton.cs | 18 + .../Themes/Aero2.NormalColor.xaml | 12 +- .../DropDownButton/Themes/Generic.xaml | 15 +- .../MessageBox/Implementation/MessageBox.cs | 30 + .../MessageBox/Themes/Aero2.NormalColor.xaml | 1 + .../MessageBox/Themes/Generic.xaml | 3 +- .../Themes/Aero2.NormalColor.xaml | 10 +- .../MultiLineTextEditor/Themes/Generic.xaml | 11 +- .../Implementation/ByteUpDown.cs | 2 +- .../Implementation/CommonNumericUpDown.cs | 118 +- .../Implementation/DecimalUpDown.cs | 2 +- .../Implementation/DoubleUpDown.cs | 2 +- .../Implementation/IntegerUpDown.cs | 2 +- .../Implementation/LongUpDown.cs | 2 +- .../Implementation/SByteUpDown.cs | 2 +- .../Implementation/ShortUpDown.cs | 2 +- .../Implementation/SingleUpDown.cs | 2 +- .../Implementation/UIntegerUpDown.cs | 2 +- .../Implementation/ULongUpDown.cs | 2 +- .../Implementation/UShortUpDown.cs | 2 +- .../Primitives/DateTimeUpDownBase.cs | 11 +- .../Xceed.Wpf.Toolkit/Primitives/Selector.cs | 18 + .../Themes/Aero2/WindowControl.xaml | 5 +- .../Themes/Generic/WindowControl.xaml | 5 +- .../Primitives/UpDownBase.cs | 154 +- .../Primitives/WindowControl.cs | 17 + .../Properties/AssemblyInfo.cs | 6 +- .../DescriptorPropertyDefinition.cs | 14 +- .../DescriptorPropertyDefinitionBase.cs | 34 +- .../Implementation/Editors/CheckBoxEditor.cs | 2 +- .../Editors/CollectionEditor.cs | 38 +- .../Implementation/Editors/ColorEditor.cs | 2 +- .../Editors/ItemsSourceAttributeEditor.cs | 2 +- .../Editors/MaskedTextBoxEditor.cs | 2 +- .../Editors/PrimitiveTypeCollectionEditor.cs | 2 +- .../Editors/SourceComboBoxEditor.cs | 79 + .../Implementation/Editors/TextBlockEditor.cs | 2 +- .../Implementation/Editors/TextBoxEditor.cs | 14 + .../Implementation/Editors/TypeEditor.cs | 4 +- .../Implementation/Editors/UpDownEditors.cs | 123 +- .../Implementation/ObjectContainerHelper.cs | 20 +- .../ObjectContainerHelperBase.cs | 13 +- .../Implementation/PropertyGrid.cs | 23 +- .../Implementation/PropertyGridUtilities.cs | 92 +- .../Implementation/PropertyItemCollection.cs | 13 + .../RangeSlider/Implementation/RangeSlider.cs | 1390 +++++++++-------- .../Themes/Aero2.NormalColor.xaml | 24 +- .../RichTextBoxFormatBar/Themes/Generic.xaml | 22 +- .../SplitButton/Themes/Aero2.NormalColor.xaml | 18 +- .../SplitButton/Themes/Generic.xaml | 19 +- .../Themes/Aero2/Glyphs.xaml | 22 +- .../Themes/Generic/Glyphs.xaml | 20 +- .../TimePicker/Implementation/TimePicker.cs | 14 +- .../TimePicker/Themes/Aero2.NormalColor.xaml | 10 +- .../TimePicker/Themes/Generic.xaml | 10 +- .../Implementation/TimeSpanUpDown.cs | 240 ++- .../Themes/Aero2.NormalColor.xaml | 1 + .../WatermarkComboBox/Themes/Generic.xaml | 1 + .../Implementation/WatermarkPasswordBox.cs | 321 ++++ .../Themes/Aero2.NormalColor.xaml | 14 +- .../WatermarkTextBox/Themes/Generic.xaml | 2 +- .../Wizard/Implementation/Wizard.cs | 9 +- .../Xceed.Wpf.Toolkit.csproj | 5 + .../Xceed.Wpf.Toolkit/AssemblyVersionInfo.cs | 2 +- .../Implementation/CalculatorUpDown.cs | 25 +- .../Themes/Aero2.NormalColor.xaml | 10 +- .../CalculatorUpDown/Themes/Generic.xaml | 11 +- .../ChildWindow/Implementation/ChildWindow.cs | 47 + .../ChildWindow/Themes/Aero2.NormalColor.xaml | 3 +- .../ChildWindow/Themes/Generic.xaml | 3 +- .../Implementation/CollectionControl.cs | 149 +- .../Implementation/CollectionControlButton.cs | 8 +- .../CollectionControlDialog.xaml.cs | 112 +- .../Themes/Aero2.NormalColor.xaml | 23 +- .../CollectionControl/Themes/Generic.xaml | 21 +- .../ColorPicker/Implementation/ColorPicker.cs | 6 + .../ColorPicker/Themes/Aero2.NormalColor.xaml | 10 +- .../ColorPicker/Themes/Generic.xaml | 10 +- .../ThicknessSideRemovalConverter.cs | 50 + .../Core/EditableKeyValuePair.cs | 96 ++ .../Core/Utilities/ListUtilities.cs | 44 + .../Core/VersionResourceDictionary.cs | 2 +- .../Implementation/DateTimePicker.cs | 38 +- .../Themes/Aero2.NormalColor.xaml | 33 +- .../DateTimePicker/Themes/Generic.xaml | 42 +- .../Implementation/DateTimeParser.cs | 40 +- .../Implementation/DateTimeUpDown.cs | 159 +- .../Implementation/DropDownButton.cs | 18 + .../Themes/Aero2.NormalColor.xaml | 12 +- .../DropDownButton/Themes/Generic.xaml | 15 +- .../MessageBox/Implementation/MessageBox.cs | 30 + .../MessageBox/Themes/Aero2.NormalColor.xaml | 1 + .../MessageBox/Themes/Generic.xaml | 3 +- .../Themes/Aero2.NormalColor.xaml | 10 +- .../MultiLineTextEditor/Themes/Generic.xaml | 11 +- .../Implementation/ByteUpDown.cs | 2 +- .../Implementation/CommonNumericUpDown.cs | 118 +- .../Implementation/DecimalUpDown.cs | 2 +- .../Implementation/DoubleUpDown.cs | 2 +- .../Implementation/IntegerUpDown.cs | 2 +- .../Implementation/LongUpDown.cs | 2 +- .../Implementation/SByteUpDown.cs | 2 +- .../Implementation/ShortUpDown.cs | 2 +- .../Implementation/SingleUpDown.cs | 2 +- .../Implementation/UIntegerUpDown.cs | 2 +- .../Implementation/ULongUpDown.cs | 2 +- .../Implementation/UShortUpDown.cs | 2 +- .../Primitives/DateTimeUpDownBase.cs | 11 +- .../Xceed.Wpf.Toolkit/Primitives/Selector.cs | 18 + .../Themes/Aero2/WindowControl.xaml | 5 +- .../Themes/Generic/WindowControl.xaml | 5 +- .../Primitives/UpDownBase.cs | 154 +- .../Primitives/WindowControl.cs | 17 + .../Properties/AssemblyInfo.cs | 6 +- .../DescriptorPropertyDefinition.cs | 14 +- .../DescriptorPropertyDefinitionBase.cs | 34 +- .../Implementation/Editors/CheckBoxEditor.cs | 2 +- .../Editors/CollectionEditor.cs | 38 +- .../Implementation/Editors/ColorEditor.cs | 2 +- .../Editors/ItemsSourceAttributeEditor.cs | 2 +- .../Editors/MaskedTextBoxEditor.cs | 2 +- .../Editors/PrimitiveTypeCollectionEditor.cs | 2 +- .../Editors/SourceComboBoxEditor.cs | 79 + .../Implementation/Editors/TextBlockEditor.cs | 2 +- .../Implementation/Editors/TextBoxEditor.cs | 14 + .../Implementation/Editors/TypeEditor.cs | 4 +- .../Implementation/Editors/UpDownEditors.cs | 123 +- .../Implementation/ObjectContainerHelper.cs | 20 +- .../ObjectContainerHelperBase.cs | 13 +- .../Implementation/PropertyGrid.cs | 23 +- .../Implementation/PropertyGridUtilities.cs | 92 +- .../Implementation/PropertyItemCollection.cs | 13 + .../RangeSlider/Implementation/RangeSlider.cs | 1390 +++++++++-------- .../Themes/Aero2.NormalColor.xaml | 24 +- .../RichTextBoxFormatBar/Themes/Generic.xaml | 22 +- .../SplitButton/Themes/Aero2.NormalColor.xaml | 18 +- .../SplitButton/Themes/Generic.xaml | 19 +- .../Themes/Aero2/Glyphs.xaml | 22 +- .../Themes/Generic/Glyphs.xaml | 20 +- .../TimePicker/Implementation/TimePicker.cs | 14 +- .../TimePicker/Themes/Aero2.NormalColor.xaml | 10 +- .../TimePicker/Themes/Generic.xaml | 10 +- .../Implementation/TimeSpanUpDown.cs | 240 ++- .../Themes/Aero2.NormalColor.xaml | 1 + .../WatermarkComboBox/Themes/Generic.xaml | 1 + .../Implementation/WatermarkPasswordBox.cs | 321 ++++ .../Themes/Aero2.NormalColor.xaml | 2 +- .../WatermarkTextBox/Themes/Generic.xaml | 2 +- .../Wizard/Implementation/Wizard.cs | 9 +- .../Xceed.Wpf.Toolkit.csproj | 6 +- 594 files changed, 8212 insertions(+), 3779 deletions(-) create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/MultiCalendarView.xaml.cs.txt create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/MultiCalendarView.xaml.txt create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/WatermarkPasswordBoxView.xaml.cs.txt create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/WatermarkPasswordBoxView.xaml.txt create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Resources/toolkitIcon.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/OpenSourceImages/MultiCalendar.png create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Resources/April.jpg create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Resources/December.jpg create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Resources/February.jpg create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Resources/July.jpg create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Resources/June.jpg create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Resources/March.jpg create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Resources/October.jpg create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Resources/September.jpg create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Views/MultiCalendarView.xaml create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Views/MultiCalendarView.xaml.cs create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/WatermarkPasswordBoxView.xaml create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/WatermarkPasswordBoxView.xaml.cs create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/Converters/ThicknessSideRemovalConverter.cs create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/EditableKeyValuePair.cs create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/PropertyGrid/Implementation/Editors/SourceComboBoxEditor.cs create mode 100644 ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/WatermarkPasswordBox/Implementation/WatermarkPasswordBox.cs create mode 100644 ExtendedWPFToolkitSolution_35/Src/Xceed.Wpf.Toolkit/Core/Converters/ThicknessSideRemovalConverter.cs create mode 100644 ExtendedWPFToolkitSolution_35/Src/Xceed.Wpf.Toolkit/Core/EditableKeyValuePair.cs create mode 100644 ExtendedWPFToolkitSolution_35/Src/Xceed.Wpf.Toolkit/PropertyGrid/Implementation/Editors/SourceComboBoxEditor.cs create mode 100644 ExtendedWPFToolkitSolution_35/Src/Xceed.Wpf.Toolkit/WatermarkPasswordBox/Implementation/WatermarkPasswordBox.cs diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/AssemblyVersionInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/AssemblyVersionInfo.cs index 84bce886..d3cc2ce9 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/AssemblyVersionInfo.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/AssemblyVersionInfo.cs @@ -21,7 +21,7 @@ internal static class _XceedVersionInfo { [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] - public const string BaseVersion = "2.9"; + public const string BaseVersion = "3.0"; [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] public const string Version = BaseVersion + ".0.0"; diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Properties/AssemblyInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Properties/AssemblyInfo.cs index c9b2ea8d..f8dc5d77 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Properties/AssemblyInfo.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Properties/AssemblyInfo.cs @@ -25,12 +25,12 @@ using System; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle( "Xceed Extended WPF Toolkit - AvalonDock Aero Theme" )] +[assembly: AssemblyTitle( "Xceed Toolkit for WPF - AvalonDock Aero Theme" )] [assembly: AssemblyDescription( "This assembly implements the Aero Theme for the AvalonDock layout system." )] [assembly: AssemblyCompany( "Xceed Software Inc." )] -[assembly: AssemblyProduct( "Xceed Extended WPF Toolkit - AvalonDock" )] -[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2015" )] +[assembly: AssemblyProduct( "Xceed Toolkit for WPF - AvalonDock" )] +[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2016" )] diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/AssemblyVersionInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/AssemblyVersionInfo.cs index 84bce886..d3cc2ce9 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/AssemblyVersionInfo.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/AssemblyVersionInfo.cs @@ -21,7 +21,7 @@ internal static class _XceedVersionInfo { [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] - public const string BaseVersion = "2.9"; + public const string BaseVersion = "3.0"; [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] public const string Version = BaseVersion + ".0.0"; diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Properties/AssemblyInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Properties/AssemblyInfo.cs index 82239c01..fe8545f1 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Properties/AssemblyInfo.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Properties/AssemblyInfo.cs @@ -25,12 +25,12 @@ using System; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle( "Xceed Extended WPF Toolkit - AvalonDock Metro Theme" )] +[assembly: AssemblyTitle( "Xceed Toolkit for WPF - AvalonDock Metro Theme" )] [assembly: AssemblyDescription( "This assembly implements the Metro Theme for the AvalonDock layout system." )] [assembly: AssemblyCompany( "Xceed Software Inc." )] -[assembly: AssemblyProduct( "Xceed Extended WPF Toolkit - AvalonDock" )] -[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2015" )] +[assembly: AssemblyProduct( "Xceed Toolkit for WPF - AvalonDock" )] +[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2016" )] diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/AssemblyVersionInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/AssemblyVersionInfo.cs index 84bce886..d3cc2ce9 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/AssemblyVersionInfo.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/AssemblyVersionInfo.cs @@ -21,7 +21,7 @@ internal static class _XceedVersionInfo { [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] - public const string BaseVersion = "2.9"; + public const string BaseVersion = "3.0"; [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] public const string Version = BaseVersion + ".0.0"; diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Properties/AssemblyInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Properties/AssemblyInfo.cs index d96c1edc..39a96798 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Properties/AssemblyInfo.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Properties/AssemblyInfo.cs @@ -25,12 +25,12 @@ using System; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle( "Xceed Extended WPF Toolkit - AvalonDock" )] +[assembly: AssemblyTitle( "Xceed Toolkit for WPF - AvalonDock" )] [assembly: AssemblyDescription( "This assembly implements the VS2010 Theme for the AvalonDock layout system." )] [assembly: AssemblyCompany( "Xceed Software Inc." )] -[assembly: AssemblyProduct( "Xceed Extended WPF Toolkit - AvalonDock" )] -[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2015" )] +[assembly: AssemblyProduct( "Xceed Toolkit for WPF - AvalonDock" )] +[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2016" )] // Setting ComVisible to false makes the types in this assembly not visible diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/AssemblyVersionInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/AssemblyVersionInfo.cs index 84bce886..d3cc2ce9 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/AssemblyVersionInfo.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/AssemblyVersionInfo.cs @@ -21,7 +21,7 @@ internal static class _XceedVersionInfo { [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] - public const string BaseVersion = "2.9"; + public const string BaseVersion = "3.0"; [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] public const string Version = BaseVersion + ".0.0"; diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutFloatingWindowControl.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutFloatingWindowControl.cs index db4db6af..62b89456 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutFloatingWindowControl.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutFloatingWindowControl.cs @@ -42,111 +42,111 @@ namespace Xceed.Wpf.AvalonDock.Controls LayoutFloatingWindowControl.ContentProperty.OverrideMetadata(typeof(LayoutFloatingWindowControl), new FrameworkPropertyMetadata(null, null, new CoerceValueCallback(CoerceContentValue))); AllowsTransparencyProperty.OverrideMetadata(typeof(LayoutFloatingWindowControl), new FrameworkPropertyMetadata(false)); ShowInTaskbarProperty.OverrideMetadata(typeof(LayoutFloatingWindowControl), new FrameworkPropertyMetadata(false)); - } + } - static object CoerceContentValue(DependencyObject sender, object content) + static object CoerceContentValue( DependencyObject sender, object content ) { - return new FloatingWindowContentHost(sender as LayoutFloatingWindowControl) { Content = content as UIElement }; + return new FloatingWindowContentHost( sender as LayoutFloatingWindowControl ) { Content = content as UIElement }; } protected class FloatingWindowContentHost : HwndHost - { - LayoutFloatingWindowControl _owner; - public FloatingWindowContentHost(LayoutFloatingWindowControl owner) { - _owner = owner; - var manager = _owner.Model.Root.Manager; - } + LayoutFloatingWindowControl _owner; + public FloatingWindowContentHost(LayoutFloatingWindowControl owner) + { + _owner = owner; + var manager = _owner.Model.Root.Manager; + } - HwndSource _wpfContentHost = null; - Border _rootPresenter = null; - DockingManager _manager = null; + HwndSource _wpfContentHost = null; + Border _rootPresenter = null; + DockingManager _manager = null; - protected override System.Runtime.InteropServices.HandleRef BuildWindowCore(System.Runtime.InteropServices.HandleRef hwndParent) - { - _wpfContentHost = new HwndSource(new HwndSourceParameters() + protected override System.Runtime.InteropServices.HandleRef BuildWindowCore(System.Runtime.InteropServices.HandleRef hwndParent) { - ParentWindow = hwndParent.Handle, - WindowStyle = Win32Helper.WS_CHILD | Win32Helper.WS_VISIBLE | Win32Helper.WS_CLIPSIBLINGS | Win32Helper.WS_CLIPCHILDREN, - Width = 1, - Height = 1 - }); - - _rootPresenter = new Border() { Child = new AdornerDecorator() { Child = Content }, Focusable = true }; - _rootPresenter.SetBinding(Border.BackgroundProperty, new Binding("Background") { Source = _owner }); - _wpfContentHost.RootVisual = _rootPresenter; - _wpfContentHost.SizeToContent = SizeToContent.Manual; - _manager = _owner.Model.Root.Manager; - _manager.InternalAddLogicalChild(_rootPresenter); - - return new HandleRef(this, _wpfContentHost.Handle); - } + _wpfContentHost = new HwndSource(new HwndSourceParameters() + { + ParentWindow = hwndParent.Handle, + WindowStyle = Win32Helper.WS_CHILD | Win32Helper.WS_VISIBLE | Win32Helper.WS_CLIPSIBLINGS | Win32Helper.WS_CLIPCHILDREN, + Width = 1, + Height = 1 + }); + + _rootPresenter = new Border() { Child = new AdornerDecorator() { Child = Content }, Focusable = true }; + _rootPresenter.SetBinding(Border.BackgroundProperty, new Binding("Background") { Source = _owner }); + _wpfContentHost.RootVisual = _rootPresenter; + _wpfContentHost.SizeToContent = SizeToContent.Manual; + _manager = _owner.Model.Root.Manager; + _manager.InternalAddLogicalChild(_rootPresenter); + + return new HandleRef(this, _wpfContentHost.Handle); + } - protected override void DestroyWindowCore(HandleRef hwnd) - { - _manager.InternalRemoveLogicalChild(_rootPresenter); - if (_wpfContentHost != null) + protected override void DestroyWindowCore(HandleRef hwnd) { - _wpfContentHost.Dispose(); - _wpfContentHost = null; + _manager.InternalRemoveLogicalChild(_rootPresenter); + if (_wpfContentHost != null) + { + _wpfContentHost.Dispose(); + _wpfContentHost = null; + } } - } - public Visual RootVisual - { - get { return _rootPresenter; } - } + public Visual RootVisual + { + get { return _rootPresenter; } + } - protected override Size MeasureOverride(Size constraint) - { - if (Content == null) - return base.MeasureOverride(constraint); + protected override Size MeasureOverride(Size constraint) + { + if (Content == null) + return base.MeasureOverride(constraint); - Content.Measure(constraint); - return Content.DesiredSize; - } + Content.Measure(constraint); + return Content.DesiredSize; + } - #region Content - - /// - /// Content Dependency Property - /// - public static readonly DependencyProperty ContentProperty = - DependencyProperty.Register("Content", typeof(UIElement), typeof(FloatingWindowContentHost), - new FrameworkPropertyMetadata((UIElement)null, - new PropertyChangedCallback(OnContentChanged))); - - /// - /// Gets or sets the Content property. This dependency property - /// indicates .... - /// - public UIElement Content - { - get { return (UIElement)GetValue(ContentProperty); } - set { SetValue(ContentProperty, value); } - } + #region Content + + /// + /// Content Dependency Property + /// + public static readonly DependencyProperty ContentProperty = + DependencyProperty.Register("Content", typeof(UIElement), typeof(FloatingWindowContentHost), + new FrameworkPropertyMetadata((UIElement)null, + new PropertyChangedCallback(OnContentChanged))); + + /// + /// Gets or sets the Content property. This dependency property + /// indicates .... + /// + public UIElement Content + { + get { return (UIElement)GetValue(ContentProperty); } + set { SetValue(ContentProperty, value); } + } - /// - /// Handles changes to the Content property. - /// - private static void OnContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) - { - ((FloatingWindowContentHost)d).OnContentChanged(e); - } + /// + /// Handles changes to the Content property. + /// + private static void OnContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + ((FloatingWindowContentHost)d).OnContentChanged(e); + } - /// - /// Provides derived classes an opportunity to handle changes to the Content property. - /// - protected virtual void OnContentChanged(DependencyPropertyChangedEventArgs e) - { - if (_rootPresenter != null) - _rootPresenter.Child = Content; - } + /// + /// Provides derived classes an opportunity to handle changes to the Content property. + /// + protected virtual void OnContentChanged(DependencyPropertyChangedEventArgs e) + { + if (_rootPresenter != null) + _rootPresenter.Child = Content; + } - #endregion - } + #endregion + } ILayoutElement _model; @@ -200,7 +200,10 @@ namespace Xceed.Wpf.AvalonDock.Controls if (Content != null) { var host = Content as FloatingWindowContentHost; - host.Dispose(); + if( host != null ) + { + host.Dispose(); + } if (_hwndSrc != null) { diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/DockingManager.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/DockingManager.cs index 68e139ab..13195377 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/DockingManager.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/DockingManager.cs @@ -1249,6 +1249,14 @@ namespace Xceed.Wpf.AvalonDock } } + public System.Collections.IEnumerator LogicalChildrenPublic + { + get + { + return this.LogicalChildren; + } + } + internal void InternalAddLogicalChild(object element) { @@ -2044,6 +2052,7 @@ namespace Xceed.Wpf.AvalonDock { (documentToRemove.Parent as ILayoutContainer).RemoveChild( documentToRemove); + this.RemoveViewFromLogicalChild( documentToRemove ); } } } @@ -2119,6 +2128,7 @@ namespace Xceed.Wpf.AvalonDock { (documentToRemove.Parent as ILayoutContainer).RemoveChild( documentToRemove); + this.RemoveViewFromLogicalChild( documentToRemove ); } } @@ -2143,6 +2153,7 @@ namespace Xceed.Wpf.AvalonDock { (documentToRemove.Parent as ILayoutContainer).RemoveChild( documentToRemove); + this.RemoveViewFromLogicalChild( documentToRemove ); } var documentsSourceAsNotifier = documentsSource as INotifyCollectionChanged; @@ -2167,6 +2178,8 @@ namespace Xceed.Wpf.AvalonDock if( document.CloseDocument() ) { + this.RemoveViewFromLogicalChild( document ); + if( DocumentClosed != null ) { var evargs = new DocumentClosedEventArgs( document ); @@ -2394,6 +2407,7 @@ namespace Xceed.Wpf.AvalonDock anchorableToRemove.Content = null; (anchorableToRemove.Parent as ILayoutContainer).RemoveChild( anchorableToRemove); + this.RemoveViewFromLogicalChild( anchorableToRemove ); } } } @@ -2484,6 +2498,7 @@ namespace Xceed.Wpf.AvalonDock { (anchorableToRemove.Parent as ILayoutContainer).RemoveChild( anchorableToRemove); + this.RemoveViewFromLogicalChild( anchorableToRemove ); } } @@ -2506,6 +2521,7 @@ namespace Xceed.Wpf.AvalonDock { (anchorableToRemove.Parent as ILayoutContainer).RemoveChild( anchorableToRemove); + this.RemoveViewFromLogicalChild( anchorableToRemove ); } var anchorablesSourceAsNotifier = anchorablesSource as INotifyCollectionChanged; @@ -2521,6 +2537,7 @@ namespace Xceed.Wpf.AvalonDock if (model != null ) { model.CloseAnchorable(); + this.RemoveViewFromLogicalChild( anchorable ); } } @@ -2554,6 +2571,18 @@ namespace Xceed.Wpf.AvalonDock content.DockAsDocument(); } + private void RemoveViewFromLogicalChild( LayoutContent layoutContent ) + { + if( layoutContent == null ) + return; + + var layoutItem = this.GetLayoutItemFromModel( layoutContent ); + if( layoutItem != null ) + { + this.InternalRemoveLogicalChild( layoutItem.View ); + } + } + #region ActiveContent /// diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/AssemblyInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/AssemblyInfo.cs index 7ebdb67a..f82cf8c3 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/AssemblyInfo.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Properties/AssemblyInfo.cs @@ -25,12 +25,12 @@ using System; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle( "Xceed Extended WPF Toolkit - AvalonDock" )] +[assembly: AssemblyTitle( "Xceed Toolkit for WPF - AvalonDock" )] [assembly: AssemblyDescription( "This assembly implements the Xceed.Wpf.AvalonDock namespace, a docking layout system for the Windows Presentation Framework." )] [assembly: AssemblyCompany( "Xceed Software Inc." )] -[assembly: AssemblyProduct( "Xceed Extended WPF Toolkit - AvalonDock" )] -[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2015" )] +[assembly: AssemblyProduct( "Xceed Toolkit for WPF - AvalonDock" )] +[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2016" )] [assembly: AssemblyCulture( "" )] diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.DataGrid/AssemblyVersionInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.DataGrid/AssemblyVersionInfo.cs index 0d5c200c..35aedd63 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.DataGrid/AssemblyVersionInfo.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.DataGrid/AssemblyVersionInfo.cs @@ -19,7 +19,7 @@ internal static class _XceedVersionInfo { [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] - public const string BaseVersion = "2.9"; + public const string BaseVersion = "3.0"; [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] public const string Version = BaseVersion + ".0.0"; [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.DataGrid/Properties/AssemblyInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.DataGrid/Properties/AssemblyInfo.cs index 43e34d10..fd29c34b 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.DataGrid/Properties/AssemblyInfo.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.DataGrid/Properties/AssemblyInfo.cs @@ -31,12 +31,12 @@ using System.Windows.Markup; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle( "Xceed Extended WPF Toolkit - DataGrid" )] +[assembly: AssemblyTitle( "Xceed Toolkit for WPF - DataGrid" )] [assembly: AssemblyDescription( "This assembly implements the Xceed.Wpf.DataGrid namespace, a data grid control for the Windows Presentation Framework." )] [assembly: AssemblyCompany( "Xceed Software Inc." )] -[assembly: AssemblyProduct( "Xceed Extended WPF Toolkit - DataGrid" )] -[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2015" )] +[assembly: AssemblyProduct( "Xceed Toolkit for WPF - DataGrid" )] +[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2016" )] [assembly: CLSCompliant( true )] diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/App.ico b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/App.ico index 77e821e75a3ece5892cbb8629d4d899ee83668d3..94eeac5806c6804f27c1a1c1497d926d49e06182 100644 GIT binary patch literal 31356 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 z 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 ALjV8( diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/App.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/App.xaml index aeae0c93..cfd75b51 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/App.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/App.xaml @@ -1,14 +1,14 @@  + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:Xceed.Wpf.Toolkit.LiveExplorer" + xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" + xmlns:sys="clr-namespace:System;assembly=mscorlib" + Title="DropDown and Split Buttons"> The DropDownButton control is a button that when clicked displays a drop down in which you can place any custom content within. @@ -27,6 +28,15 @@ The SplitButton control is a button that can be clicked and also provides a drop down in which you can place any custom content within. + + + + + + + @@ -39,6 +49,11 @@ + + + + + + + + @@ -75,6 +103,7 @@ HorizontalAlignment="Left" Content="Click Me" MaxDropDownHeight="{Binding Value, ElementName=maxDropDownHeight}" + DropDownPosition="{Binding SelectedItem, ElementName=dropDownPosition}" Click="DropDownButton_Click"> @@ -96,6 +125,7 @@ HorizontalAlignment="Left" Content="Click Me" MaxDropDownHeight="{Binding Value, ElementName=maxDropDownHeight}" + DropDownPosition="{Binding SelectedItem, ElementName=dropDownPosition}" Click="SplitButton_Click"> diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/FilePickerView.xaml.cs.txt b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/FilePickerView.xaml.cs.txt index adf3bb71..53bd8cdb 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/FilePickerView.xaml.cs.txt +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/FilePickerView.xaml.cs.txt @@ -1,14 +1,14 @@ /*************************************************************************************** - Extended WPF Toolkit + Toolkit for WPF - Copyright (C) 2007-2015 Xceed Software Inc. + Copyright (C) 2007-2016 Xceed Software Inc. This program is provided to you under the terms of the Microsoft Public License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license For more features, controls, and fast professional support, - pick up the Plus Edition at http://xceed.com/wpf_toolkit + pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/ Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/FilePickerView.xaml.txt b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/FilePickerView.xaml.txt index 3030ab75..af502785 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/FilePickerView.xaml.txt +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/FilePickerView.xaml.txt @@ -1,14 +1,14 @@  + + + + + + The MultiCalendar combines X Microsoft Calendars that can be positioned in a grid with rows and columns. The selected dates, blackout dates and highlighted dates can be chosen from any calendar. The MultiCalendar will have a fast response no matter how many CalendarDayButtons are selected. + + + The Background/Foreground of any CalendarDayButton can be easily customized based on its state(selected/highlighted/blackout/mouseOver/focused/today) and the background of any Calendar can be customized with an image or a brush. + + + This feature is only available in the "Plus" version. + + + Click here for more details about Xceed Toolkit Plus for WPF. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/MultiColumnComboBoxView.xaml.cs.txt b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/MultiColumnComboBoxView.xaml.cs.txt index 1fbd7bb9..1cbf8761 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/MultiColumnComboBoxView.xaml.cs.txt +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/MultiColumnComboBoxView.xaml.cs.txt @@ -1,14 +1,14 @@ /*************************************************************************************** - Extended WPF Toolkit + Toolkit for WPF - Copyright (C) 2007-2015 Xceed Software Inc. + Copyright (C) 2007-2016 Xceed Software Inc. This program is provided to you under the terms of the Microsoft Public License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license For more features, controls, and fast professional support, - pick up the Plus Edition at http://xceed.com/wpf_toolkit + pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/ Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/MultiColumnComboBoxView.xaml.txt b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/MultiColumnComboBoxView.xaml.txt index 61f28c02..f224c295 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/MultiColumnComboBoxView.xaml.txt +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/CodeFiles/MultiColumnComboBoxView.xaml.txt @@ -1,14 +1,14 @@  @@ -413,7 +415,7 @@ Value="True"> + Value="{StaticResource SampleDefaultBrush}" /> @@ -436,12 +438,16 @@ - + - + + @@ -621,7 +630,11 @@ + IsPlusOnlyFeature="True" /> + - + Fill="{StaticResource SampleDefaultBrush}" /> - Extended WPF Toolkit + NavigateUri="https://xceed.com/xceed-toolkit-plus-for-wpf/"> + Toolkit Plus diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/MainWindow.xaml.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/MainWindow.xaml.cs index 1ed144ab..36eed46a 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/MainWindow.xaml.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/MainWindow.xaml.cs @@ -1,14 +1,14 @@ /************************************************************************************* - Extended WPF Toolkit + Toolkit for WPF - Copyright (C) 2007-2015 Xceed Software Inc. + Copyright (C) 2007-2016 Xceed Software Inc. This program is provided to you under the terms of the Microsoft Public License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license For more features, controls, and fast professional support, - pick up the Plus Edition at http://xceed.com/wpf_toolkit + pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/ Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Properties/AssemblyInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Properties/AssemblyInfo.cs index 37166cf5..680187e5 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Properties/AssemblyInfo.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Properties/AssemblyInfo.cs @@ -7,11 +7,11 @@ using System.Windows; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle( "Xceed Extended WPF Toolkit LiveExplorer" )] +[assembly: AssemblyTitle( "Xceed Toolkit for WPF LiveExplorer" )] [assembly: AssemblyDescription( "" )] [assembly: AssemblyCompany( "Xceed Software Inc." )] -[assembly: AssemblyProduct( "Xceed Extended WPF Toolkit" )] -[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2015" )] +[assembly: AssemblyProduct( "Xceed Toolkit for WPF" )] +[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2016" )] [assembly: AssemblyCulture( "" )] // Setting ComVisible to false makes the types in this assembly not visible @@ -49,8 +49,8 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion( "2.9.*" )] -[assembly: AssemblyFileVersion( "2.9.0.0" )] +[assembly: AssemblyVersion( "3.0.*" )] +[assembly: AssemblyFileVersion( "3.0.0.0" )] #pragma warning disable 1699 [assembly: AssemblyDelaySign( false )] diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Properties/Resources.resx b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Properties/Resources.resx index 41922967..2b8c700e 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Properties/Resources.resx +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Properties/Resources.resx @@ -3,7 +3,7 @@ + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:Xceed.Wpf.Toolkit.LiveExplorer" + xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" + xmlns:sys="clr-namespace:System;assembly=mscorlib" + Title="DropDown and Split Buttons"> The DropDownButton control is a button that when clicked displays a drop down in which you can place any custom content within. @@ -27,6 +28,15 @@ The SplitButton control is a button that can be clicked and also provides a drop down in which you can place any custom content within. + + + + + + + @@ -39,6 +49,11 @@ + + + + + + + + @@ -75,6 +103,7 @@ HorizontalAlignment="Left" Content="Click Me" MaxDropDownHeight="{Binding Value, ElementName=maxDropDownHeight}" + DropDownPosition="{Binding SelectedItem, ElementName=dropDownPosition}" Click="DropDownButton_Click"> @@ -96,6 +125,7 @@ HorizontalAlignment="Left" Content="Click Me" MaxDropDownHeight="{Binding Value, ElementName=maxDropDownHeight}" + DropDownPosition="{Binding SelectedItem, ElementName=dropDownPosition}" Click="SplitButton_Click"> diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Button/Views/DropDownSplitButtonView.xaml.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Button/Views/DropDownSplitButtonView.xaml.cs index 07fd4ea0..514308b9 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Button/Views/DropDownSplitButtonView.xaml.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Button/Views/DropDownSplitButtonView.xaml.cs @@ -1,14 +1,14 @@ /*************************************************************************************** - Extended WPF Toolkit + Toolkit for WPF - Copyright (C) 2007-2015 Xceed Software Inc. + Copyright (C) 2007-2016 Xceed Software Inc. This program is provided to you under the terms of the Microsoft Public License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license For more features, controls, and fast professional support, - pick up the Plus Edition at http://xceed.com/wpf_toolkit + pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/ Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Calculator/Views/CalculatorView.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Calculator/Views/CalculatorView.xaml index a97f678c..894a52c8 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Calculator/Views/CalculatorView.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Calculator/Views/CalculatorView.xaml @@ -1,14 +1,14 @@ )h!krF&ENO05%guvB^8m*Sv744bo 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 literal 0 HcmV?d00001 diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Views/MultiCalendarView.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Views/MultiCalendarView.xaml new file mode 100644 index 00000000..de14f5f8 --- /dev/null +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Views/MultiCalendarView.xaml @@ -0,0 +1,108 @@ + + + + + + + The MultiCalendar combines X Microsoft Calendars that can be positioned in a grid with rows and columns. The selected dates, blackout dates and highlighted dates can be chosen from any calendar. The MultiCalendar will have a fast response no matter how many CalendarDayButtons are selected. + + + The Background/Foreground of any CalendarDayButton can be easily customized based on its state(selected/highlighted/blackout/mouseOver/focused/today) and the background of any Calendar can be customized with an image or a brush. + + + This feature is only available in the "Plus" version. + + + Click here for more details about Xceed Toolkit Plus for WPF. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Views/MultiCalendarView.xaml.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Views/MultiCalendarView.xaml.cs new file mode 100644 index 00000000..e6f2523b --- /dev/null +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/MultiCalendar/Views/MultiCalendarView.xaml.cs @@ -0,0 +1,45 @@ +/************************************************************************************* + + Toolkit for WPF + + Copyright (C) 2007-2014 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Public + License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license + + For more features, controls, and fast professional support, + pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/ + + Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids + + ***********************************************************************************/ + +using System.Windows.Controls; +using System; +using System.Windows.Media; +using System.Windows; + +namespace Xceed.Wpf.Toolkit.LiveExplorer.Samples.MultiCalendar.Views +{ + /// + /// Interaction logic for MultiCalendarView.xaml + /// + public partial class MultiCalendarView : DemoView + { + public MultiCalendarView() + { + InitializeComponent(); + } + + + + + + + + + + + + } +} diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Numeric/Views/NumericView.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Numeric/Views/NumericView.xaml index d7025191..9f46a868 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Numeric/Views/NumericView.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Numeric/Views/NumericView.xaml @@ -1,14 +1,14 @@  + + + + + The WatermarkPasswordBox is a PasswordBox where you can enter a secure password and display a watermark when the password is not defined. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/WatermarkPasswordBoxView.xaml.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/WatermarkPasswordBoxView.xaml.cs new file mode 100644 index 00000000..c09b86ce --- /dev/null +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/WatermarkPasswordBoxView.xaml.cs @@ -0,0 +1,39 @@ +/************************************************************************************** + + Toolkit for WPF + + Copyright (C) 2007-2016 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Public + License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license + + For more features, controls, and fast professional support, + pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/ + + Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids + + **************************************************************************************/ + + +namespace Xceed.Wpf.Toolkit.LiveExplorer.Samples.Text.Views +{ + /// + /// Interaction logic for WatermarkPasswordBoxView.xaml + /// + public partial class WatermarkPasswordBoxView : DemoView + { + public WatermarkPasswordBoxView() + { + InitializeComponent(); + } + + private void WatermarkPasswordBox_PasswordChanged( object sender, System.Windows.RoutedEventArgs e ) + { + var passwordBox = sender as WatermarkPasswordBox; + if( passwordBox != null ) + { + _passwordTextBlock.Text = passwordBox.Password; + } + } + } +} diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/WatermarkTextboxView.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/WatermarkTextboxView.xaml index db4921a5..f68a4584 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/WatermarkTextboxView.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit.LiveExplorer/Samples/Text/Views/WatermarkTextboxView.xaml @@ -1,14 +1,14 @@  + @@ -252,6 +253,9 @@ MaterialControlsView.xaml + + MultiCalendarView.xaml + NumericView.xaml @@ -351,6 +355,9 @@ RichTextboxView.xaml + + WatermarkPasswordBoxView.xaml + WatermarkTextboxView.xaml @@ -613,6 +620,10 @@ MSBuild:Compile Designer + + MSBuild:Compile + Designer + MSBuild:Compile Designer @@ -733,6 +744,10 @@ MSBuild:Compile Designer + + MSBuild:Compile + Designer + MSBuild:Compile Designer @@ -844,9 +859,6 @@ - - - @@ -1329,6 +1341,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/AssemblyVersionInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/AssemblyVersionInfo.cs index 84bce886..d3cc2ce9 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/AssemblyVersionInfo.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/AssemblyVersionInfo.cs @@ -21,7 +21,7 @@ internal static class _XceedVersionInfo { [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] - public const string BaseVersion = "2.9"; + public const string BaseVersion = "3.0"; [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] public const string Version = BaseVersion + ".0.0"; diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CalculatorUpDown/Implementation/CalculatorUpDown.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CalculatorUpDown/Implementation/CalculatorUpDown.cs index f30f30c4..61cc813e 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CalculatorUpDown/Implementation/CalculatorUpDown.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CalculatorUpDown/Implementation/CalculatorUpDown.cs @@ -98,7 +98,7 @@ namespace Xceed.Wpf.Toolkit protected virtual void OnIsOpenChanged( bool oldValue, bool newValue ) { if( newValue ) - _initialValue = Value; + _initialValue = this.UpdateValueOnEnterKey ? this.ConvertTextToValue( this.TextBox.Text ) : this.Value; } #endregion //IsOpen @@ -181,7 +181,14 @@ namespace Xceed.Wpf.Toolkit { if( IsValid( _calculator.Value ) ) { - this.Value = _calculator.Value; + if( this.UpdateValueOnEnterKey ) + { + this.TextBox.Text = (_calculator.Value != null) ? _calculator.Value.Value.ToString( this.FormatString, this.CultureInfo ) : null; + } + else + { + this.Value = _calculator.Value; + } } } @@ -193,7 +200,8 @@ namespace Xceed.Wpf.Toolkit { if( _calculator != null ) { - _calculator.InitializeToValue( this.Value ); + var initValue = this.UpdateValueOnEnterKey ? this.ConvertTextToValue( this.TextBox.Text ) : this.Value; + _calculator.InitializeToValue( initValue ); _calculator.Focus(); } } @@ -231,7 +239,16 @@ namespace Xceed.Wpf.Toolkit else if( e.Key == Key.Escape ) { if( EnterClosesCalculator ) - Value = _initialValue; + { + if( this.UpdateValueOnEnterKey ) + { + this.TextBox.Text = (_initialValue != null) ? _initialValue.Value.ToString( this.FormatString, this.CultureInfo ) : null; + } + else + { + this.Value = _initialValue; + } + } CloseCalculatorUpDown( true ); e.Handled = true; } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CalculatorUpDown/Themes/Aero2.NormalColor.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CalculatorUpDown/Themes/Aero2.NormalColor.xaml index c86d9e57..71d8097e 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CalculatorUpDown/Themes/Aero2.NormalColor.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CalculatorUpDown/Themes/Aero2.NormalColor.xaml @@ -24,7 +24,8 @@ - + + @@ -53,7 +54,12 @@ - + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CalculatorUpDown/Themes/Generic.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CalculatorUpDown/Themes/Generic.xaml index d12d9758..93a827ef 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CalculatorUpDown/Themes/Generic.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CalculatorUpDown/Themes/Generic.xaml @@ -22,6 +22,10 @@ xmlns:conv="clr-namespace:Xceed.Wpf.Toolkit.Core.Converters" xmlns:sys="clr-namespace:System;assembly=mscorlib"> + + + + @@ -61,7 +65,12 @@ - + diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ChildWindow/Implementation/ChildWindow.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ChildWindow/Implementation/ChildWindow.cs index e303880c..4df3bbd5 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ChildWindow/Implementation/ChildWindow.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ChildWindow/Implementation/ChildWindow.cs @@ -55,6 +55,7 @@ namespace Xceed.Wpf.Toolkit private Grid _windowRoot; private WindowControl _windowControl; private bool _ignorePropertyChanged; + private bool _hasChildren; private bool _hasWindowContainer; #endregion //Private Members @@ -333,6 +334,8 @@ namespace Xceed.Wpf.Toolkit _modalLayer.Fill = OverlayBrush; _modalLayer.Opacity = OverlayOpacity; + + this.IsVisibleChanged += this.ChildWindow_IsVisibleChanged; } #endregion //Constructors @@ -423,12 +426,48 @@ namespace Xceed.Wpf.Toolkit Action action = () => { if( FocusedElement != null ) + { + _hasChildren = true; FocusedElement.Focus(); + } + else + { + //Focus first Focusable Child element of ChildWindow + var focusableChild = TreeHelper.FindChild( this.Content as DependencyObject, x => x.Focusable ); + if( focusableChild != null ) + { + _hasChildren = true; + focusableChild.Focus(); + } + else + { + _hasChildren = false; + } + } }; Dispatcher.BeginInvoke( DispatcherPriority.ApplicationIdle, action ); } + protected override void OnPreviewKeyDown( KeyEventArgs e ) + { + base.OnPreviewKeyDown( e ); + + if( this.IsModal ) + { + // Prevent MenuItem shortcuts while ChildWindow is modal. + if( Keyboard.IsKeyDown( Key.LeftAlt ) || Keyboard.IsKeyDown( Key.RightAlt ) ) + { + e.Handled = true; + } + // Prevent Tab when no children + else if( (e.Key == Key.Tab) && !_hasChildren ) + { + e.Handled = true; + } + } + } + protected override void OnKeyDown( KeyEventArgs e ) { base.OnKeyDown( e ); @@ -617,6 +656,14 @@ namespace Xceed.Wpf.Toolkit Top = GetRestrictedTop(); } + private void ChildWindow_IsVisibleChanged( object sender, DependencyPropertyChangedEventArgs e ) + { + if( (bool)e.NewValue && this.IsModal ) + { + this.Focus(); + } + } + #endregion //Event Handlers diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ChildWindow/Themes/Aero2.NormalColor.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ChildWindow/Themes/Aero2.NormalColor.xaml index ff971a58..2a5bd5ef 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ChildWindow/Themes/Aero2.NormalColor.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ChildWindow/Themes/Aero2.NormalColor.xaml @@ -72,7 +72,8 @@ Height="{TemplateBinding Height}"> 0) ? dict.GetType().GetGenericArguments()[0] : typeof( object ); + var valueType = (item.Value != null) + ? item.Value.GetType() + : (dict.GetType().GetGenericArguments().Count() > 1) ? dict.GetType().GetGenericArguments()[ 1 ] : typeof( object ); + var editableKeyValuePair = ListUtilities.CreateEditableKeyValuePair( item.Key + , keyType + , item.Value + , valueType ); + this.Items.Add( editableKeyValuePair ); + } + } + else + { + foreach( var item in newValue ) + { + if( item != null ) + { + Items.Add( item ); + } } } } @@ -175,15 +200,27 @@ namespace Xceed.Wpf.Toolkit base.OnApplyTemplate(); if( _newItemTypesComboBox != null ) + { _newItemTypesComboBox.Loaded -= new RoutedEventHandler( this.NewItemTypesComboBox_Loaded ); - + } _newItemTypesComboBox = GetTemplateChild( PART_NewItemTypesComboBox ) as ComboBox; - if( _newItemTypesComboBox != null ) + { _newItemTypesComboBox.Loaded += new RoutedEventHandler( this.NewItemTypesComboBox_Loaded ); + } + + _listBox = this.GetTemplateChild( PART_ListBox ) as ListBox; + if( _propertyGrid != null ) + { + _propertyGrid.PropertyValueChanged -= this.PropertyGrid_PropertyValueChanged; + } _propertyGrid = GetTemplateChild( PART_PropertyGrid ) as PropertyGrid.PropertyGrid; - } + if( _propertyGrid != null ) + { + _propertyGrid.PropertyValueChanged += this.PropertyGrid_PropertyValueChanged; + } + } public PropertyGrid.PropertyGrid PropertyGrid { @@ -343,6 +380,14 @@ namespace Xceed.Wpf.Toolkit _newItemTypesComboBox.SelectedIndex = 0; } + private void PropertyGrid_PropertyValueChanged( object sender, PropertyGrid.PropertyValueChangedEventArgs e ) + { + if( _listBox != null ) + { + _listBox.Items.Refresh(); + } + } + #endregion #region Commands @@ -442,41 +487,87 @@ namespace Xceed.Wpf.Toolkit internal void PersistChanges( IList sourceList ) { - IList list = ComputeItemsSource(); - if( list == null ) + var collection = ComputeItemsSource(); + if( collection == null ) return; - //the easiest way to persist changes to the source is to just clear the source list and then add all items to it. - list.Clear(); + //IDictionary and IDictionary + if( collection is IDictionary ) + { + //For a Dictionary, we need to parse the list of EditableKeyValuePair and add KeyValuePair to the Dictionary. + var dict = (IDictionary)collection; + //the easiest way to persist changes to the source is to just clear the source list and then add all items to it. + dict.Clear(); - if( list.IsFixedSize ) + foreach( var item in sourceList ) + { + var propInfoKey = item.GetType().GetProperty( "Key" ); + var propInfoValue = item.GetType().GetProperty( "Value" ); + if( (propInfoKey != null) && (propInfoValue != null) ) + { + dict.Add( propInfoKey.GetValue( item, null ), propInfoValue.GetValue( item, null ) ); + } + } + } + //IList + else if( collection is IList ) { - for( int i = 0; i < sourceList.Count; ++i ) - list[ i ] = sourceList[ i ]; + var list = (IList)collection; + + //the easiest way to persist changes to the source is to just clear the source list and then add all items to it. + list.Clear(); + + if( list.IsFixedSize ) + { + for( int i = 0; i < sourceList.Count; ++i ) + list[ i ] = sourceList[ i ]; + } + else + { + foreach( var item in sourceList ) + { + list.Add( item ); + } + } } else { - foreach( var item in sourceList ) + //ICollection (or IList) + var collectionType = collection.GetType(); + var iCollectionOfTInterface = collectionType.GetInterfaces().FirstOrDefault( x => x.IsGenericType && (x.GetGenericTypeDefinition() == typeof( ICollection<> )) ); + if( iCollectionOfTInterface != null ) { - list.Add( item ); + var argumentType = iCollectionOfTInterface.GetGenericArguments().FirstOrDefault(); + if( argumentType != null ) + { + var iCollectionOfTType = typeof( ICollection<> ).MakeGenericType( argumentType ); + + //the easiest way to persist changes to the source is to just clear the source list and then add all items to it. + iCollectionOfTType.GetMethod( "Clear" ).Invoke( collection, null ); + + foreach( var item in sourceList ) + { + iCollectionOfTType.GetMethod( "Add" ).Invoke( collection, new object[] { item } ); + } + } } } } - private IList CreateItemsSource() + private IEnumerable CreateItemsSource() { - IList list = null; + IEnumerable collection = null; if( ItemsSourceType != null ) { - ConstructorInfo constructor = ItemsSourceType.GetConstructor( Type.EmptyTypes ); + var constructor = ItemsSourceType.GetConstructor( Type.EmptyTypes ); if( constructor != null ) { - list = ( IList )constructor.Invoke( null ); + collection = (IEnumerable)constructor.Invoke( null ); } } - return list; + return collection; } private object CreateNewItem( Type type ) @@ -484,7 +575,7 @@ namespace Xceed.Wpf.Toolkit return Activator.CreateInstance( type ); } - private IList ComputeItemsSource() + private IEnumerable ComputeItemsSource() { if( ItemsSource == null ) ItemsSource = CreateItemsSource(); diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlButton.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlButton.cs index 644b6b61..e410e072 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlButton.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlButton.cs @@ -17,8 +17,6 @@ using System; using System.Collections; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Windows; using System.Windows.Controls; @@ -61,12 +59,12 @@ namespace Xceed.Wpf.Toolkit #region ItemsSource Property - public static readonly DependencyProperty ItemsSourceProperty = DependencyProperty.Register( "ItemsSource", typeof( IList ), typeof( CollectionControlButton ), new UIPropertyMetadata( null ) ); - public IList ItemsSource + public static readonly DependencyProperty ItemsSourceProperty = DependencyProperty.Register( "ItemsSource", typeof( IEnumerable ), typeof( CollectionControlButton ), new UIPropertyMetadata( null ) ); + public IEnumerable ItemsSource { get { - return ( IList )GetValue( ItemsSourceProperty ); + return (IEnumerable)GetValue( ItemsSourceProperty ); } set { diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs index b9196386..24e2436c 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs @@ -17,8 +17,13 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Diagnostics; using System.Windows; using System.Windows.Media; +using Xceed.Wpf.Toolkit.Core.Utilities; +using System.Linq; +using System.Runtime.Serialization; +using System.Security; namespace Xceed.Wpf.Toolkit { @@ -40,12 +45,12 @@ namespace Xceed.Wpf.Toolkit #region Properties - public static readonly DependencyProperty ItemsSourceProperty = DependencyProperty.Register( "ItemsSource", typeof( IList ), typeof( CollectionControlDialog ), new UIPropertyMetadata( null ) ); - public IList ItemsSource + public static readonly DependencyProperty ItemsSourceProperty = DependencyProperty.Register( "ItemsSource", typeof( IEnumerable ), typeof( CollectionControlDialog ), new UIPropertyMetadata( null ) ); + public IEnumerable ItemsSource { get { - return ( IList )GetValue( ItemsSourceProperty ); + return (IEnumerable)GetValue( ItemsSourceProperty ); } set { @@ -145,6 +150,15 @@ namespace Xceed.Wpf.Toolkit private void OkButton_Click( object sender, RoutedEventArgs e ) { + if( this.ItemsSource is IDictionary ) + { + if( !this.AreDictionaryKeysValid() ) + { + MessageBox.Show( "All dictionary items should have distinct non-null Key values.", "Warning" ); + return; + } + } + _collectionControl.PersistChanges(); this.DialogResult = true; this.Close(); @@ -157,40 +171,96 @@ namespace Xceed.Wpf.Toolkit this.Close(); } -#endregion //Event Hanlders + #endregion //Event Hanlders -#region Private Methods + #region Private Methods + [SecuritySafeCritical] private object Clone( object source ) { + if( source == null ) + return null; + + object result = null; var sourceType = source.GetType(); - //Get default constructor - var result = sourceType.GetConstructor( new Type[] { } ).Invoke( null ); - var properties = sourceType.GetProperties(); - foreach( var propertyInfo in properties ) + // For IDictionary, we need to create EditableKeyValuePair to edit the Key-Value. + if( (this.ItemsSource is IDictionary) + && sourceType.IsGenericType + && typeof( KeyValuePair<,> ).IsAssignableFrom( sourceType.GetGenericTypeDefinition() ) ) + { + result = this.GenerateEditableKeyValuePair( source ); + } + else { - var propertyInfoValue = propertyInfo.GetValue( source, null ); + // Initialized a new object with default values + result = FormatterServices.GetUninitializedObject( sourceType ); + } + Debug.Assert( result != null ); + if( result != null ) + { + var properties = sourceType.GetProperties(); - if( propertyInfo.CanWrite ) + foreach( var propertyInfo in properties ) { - //Look for nested object - if( propertyInfo.PropertyType.IsClass && (propertyInfo.PropertyType != typeof(Transform)) && !propertyInfo.PropertyType.Equals( typeof( string ) ) ) - { - var nestedObject = this.Clone( propertyInfoValue ); - propertyInfo.SetValue( result, nestedObject, null ); - } - else + var propertyInfoValue = propertyInfo.GetValue( source, null ); + + if( propertyInfo.CanWrite ) { - // copy object - propertyInfo.SetValue( result, propertyInfoValue, null ); + //Look for nested object + if( propertyInfo.PropertyType.IsClass + && (propertyInfo.PropertyType != typeof( Transform )) + && !propertyInfo.PropertyType.Equals( typeof( string ) ) ) + { + var nestedObject = this.Clone( propertyInfoValue ); + propertyInfo.SetValue( result, nestedObject, null ); + } + else + { + // copy object + propertyInfo.SetValue( result, propertyInfoValue, null ); + } } } - } + } return result; } + private object GenerateEditableKeyValuePair( object source ) + { + var sourceType = source.GetType(); + if( (sourceType.GetGenericArguments() == null) || (sourceType.GetGenericArguments().GetLength( 0 ) != 2) ) + return null; + + var propInfoKey = sourceType.GetProperty( "Key" ); + var propInfoValue = sourceType.GetProperty( "Value" ); + if( (propInfoKey != null) && (propInfoValue != null) ) + { + return ListUtilities.CreateEditableKeyValuePair( propInfoKey.GetValue( source, null ) + , sourceType.GetGenericArguments()[ 0 ] + , propInfoValue.GetValue( source, null ) + , sourceType.GetGenericArguments()[ 1 ] ); + } + return null; + } + + private bool AreDictionaryKeysValid() + { + var keys = _collectionControl.Items.Select( x => + { + var keyType = x.GetType().GetProperty( "Key" ); + if( keyType != null ) + { + return keyType.GetValue( x, null ); + } + return null; + } ); + + return (keys.Distinct().Count() == _collectionControl.Items.Count ) + && keys.All( x => x != null ); + } + #endregion } } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Themes/Aero2.NormalColor.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Themes/Aero2.NormalColor.xaml index 2f4cb4f4..5a657dfd 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Themes/Aero2.NormalColor.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Themes/Aero2.NormalColor.xaml @@ -23,7 +23,11 @@ xmlns:chrome="clr-namespace:Xceed.Wpf.Toolkit.Chromes" xmlns:pg="clr-namespace:Xceed.Wpf.Toolkit.PropertyGrid"> - + + + + + @@ -91,7 +95,7 @@ Content="Add" Command="New" CommandParameter="{Binding SelectedItem, ElementName=PART_NewItemTypesComboBox}" /> - @@ -229,10 +233,11 @@ RenderMouseOver="{TemplateBinding IsMouseOver}"> + Width="9" + Height="5" + Data="{StaticResource DownArrowGeometry}" + Fill="#FF000000" + Margin="0,1,0,0"/> diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Themes/Generic.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Themes/Generic.xaml index 00090181..5ef46daf 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Themes/Generic.xaml +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Themes/Generic.xaml @@ -22,6 +22,10 @@ xmlns:chrome="clr-namespace:Xceed.Wpf.Toolkit.Chromes" xmlns:pg="clr-namespace:Xceed.Wpf.Toolkit.PropertyGrid"> + + + + @@ -102,7 +106,7 @@ Content="Add" Command="New" CommandParameter="{Binding SelectedItem, ElementName=PART_NewItemTypesComboBox}" /> -