├── .gitignore
├── Documentation
├── DocumentationCreator.Calculator
│ ├── Calculator.png
│ └── README.md
├── DocumentationCreator.SolutionExplorer
│ ├── Explorer.png
│ └── README.md
├── HyperlinkRun
│ └── Normal.png
├── LineChart
│ ├── Default.png
│ └── README.md
├── Metrolib.Controls.AddButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.AlarmToggleButton
│ ├── Checked.png
│ ├── Disabled.png
│ ├── Disabled_Checked.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.CircularProgressBar
│ ├── 100__progress.png
│ ├── 50__progress.png
│ ├── Disabled.png
│ ├── Indeterminate.png
│ ├── Indeterminate__Content.png
│ ├── No_progress.png
│ └── README.md
├── Metrolib.Controls.CloseButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.CollapseAllButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.DownloadButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.EditToggleButton
│ ├── Checked.png
│ ├── Disabled.png
│ ├── Disabled_Checked.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.EditorTextBox
│ ├── Disabled.png
│ ├── Focused.png
│ ├── README.md
│ ├── Text__Focused.png
│ ├── Text__Unfocused.png
│ └── Unfocused.png
├── Metrolib.Controls.EmailToggleButton
│ ├── Checked.png
│ ├── Disabled.png
│ ├── Disabled_Checked.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.ExpandAllButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.ExpanderToggleButton
│ ├── Checked.png
│ ├── Disabled.png
│ ├── Disabled_Checked.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.ExportButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.FileAddButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.FilterTextBox
│ ├── Disabled.png
│ ├── FilterText__Focused.png
│ ├── FilterText__Unfocused.png
│ ├── Focused.png
│ ├── Invalid_FilterText.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.FlatPasswordBox
│ ├── Disabled.png
│ ├── Focused.png
│ ├── Password__Focused.png
│ ├── Password__Unfocused.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.FlatProgressBar
│ ├── 100__progress.png
│ ├── 50__progress.png
│ ├── Disabled.png
│ ├── Indeterminate.png
│ ├── No_progress.png
│ └── README.md
├── Metrolib.Controls.FolderAddButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.FolderOpenButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.ImportButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.MarkdownPresenter
│ ├── Bold.png
│ ├── Bold_and_Italic.png
│ ├── Hyperlink.png
│ ├── Italic.png
│ ├── README.md
│ └── Strikethrough.png
├── Metrolib.Controls.MaximizeButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.MinimizeButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.MoreButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.NextButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.PathChooserTextBox
│ ├── Disabled.png
│ ├── Focused.png
│ ├── README.md
│ ├── Text__Focused.png
│ ├── Text__Unfocused.png
│ └── Unfocused.png
├── Metrolib.Controls.PinToggleButton
│ ├── Checked.png
│ ├── Disabled.png
│ ├── Disabled_Checked.png
│ ├── README.md
│ ├── RotateWhenUnchecked_Checked.png
│ ├── RotateWhenUnchecked_Unchecked.png
│ └── Unfocused.png
├── Metrolib.Controls.PluginToggleButton
│ ├── Checked.png
│ ├── Disabled.png
│ ├── Disabled_Checked.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.PreviousButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.RefreshButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.RemoveButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.SearchButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.SearchTextBox
│ ├── FilterText__Focused.png
│ ├── Focused.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.SwitchToggleButton
│ ├── Checked.png
│ ├── Disabled.png
│ ├── Disabled_Checked.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.TrashButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.UndoButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.UploadButton
│ ├── Disabled.png
│ ├── Hovered.png
│ ├── Pressed.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.ViewDashboardToggleButton
│ ├── Checked.png
│ ├── Disabled.png
│ ├── Disabled_Checked.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.ViewQuiltToggleButton
│ ├── Checked.png
│ ├── Disabled.png
│ ├── Disabled_Checked.png
│ ├── README.md
│ └── Unfocused.png
├── Metrolib.Controls.VisibilityToggleButton
│ ├── Checked.png
│ ├── Disabled.png
│ ├── Disabled_Checked.png
│ ├── README.md
│ └── Unfocused.png
├── NetworkView
│ ├── Normal.png
│ └── README.md
├── OpenInNewHyperlink
│ └── Normal.png
└── PieChart
│ ├── FavouriteBars.png
│ └── README.md
├── LICENSE
├── Metrolib.sln
├── README.md
├── publish.cmd
├── restore_key.cmd
├── sig
├── .gitignore
├── Crypt.exe
└── sns
└── src
├── DocumentationCreator
├── Bootstrapper.cs
├── Calculator.xaml
├── Calculator.xaml.cs
├── Documentation.cs
├── DocumentationCreator.csproj
├── Properties
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── SolutionExplorer.xaml
└── SolutionExplorer.xaml.cs
├── Metrolib.Sample
├── Bootstrapper.cs
├── Buttons.xaml
├── Buttons.xaml.cs
├── CityViewModel.cs
├── ContentControls.xaml
├── ContentControls.xaml.cs
├── ContentPresenters.xaml
├── ContentPresenters.xaml.cs
├── Dialogs.xaml
├── Dialogs.xaml.cs
├── DialogsViewModel.cs
├── EdgeType.cs
├── EditBoxes.xaml
├── EditBoxes.xaml.cs
├── HistogramCharts.xaml
├── HistogramCharts.xaml.cs
├── Items.xaml
├── Items.xaml.cs
├── LineCharts.xaml
├── LineCharts.xaml.cs
├── Lists.xaml
├── Lists.xaml.cs
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── MapCharts.xaml
├── MapCharts.xaml.cs
├── MarvelCharacterViewModel.cs
├── Metrolib.Sample.csproj
├── NetworkCharts.xaml
├── NetworkCharts.xaml.cs
├── NetworkChartsViewModel.cs
├── Panels.xaml
├── Panels.xaml.cs
├── PieCharts.xaml
├── PieCharts.xaml.cs
├── ProgressBars.xaml
├── ProgressBars.xaml.cs
├── Properties
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── Resources
│ ├── BlackWidow.png
│ ├── CaptainAmerica.png
│ ├── Falcon.png
│ ├── Hulk.png
│ ├── IronMan.png
│ ├── MariaHill.png
│ ├── NickFury.png
│ ├── ScarletWitch.png
│ ├── SharonCarter.png
│ ├── Thor.png
│ ├── Vision.png
│ └── WinterSoldier.png
├── Scrolling.xaml
├── Scrolling.xaml.cs
├── SuggestionsViewModel.cs
├── TextBlocks.xaml
├── TextBlocks.xaml.cs
├── TextBoxes.xaml
├── TextBoxes.xaml.cs
├── TextEditor.xaml
├── TextEditor.xaml.cs
├── ToggleButtons.xaml
├── ToggleButtons.xaml.cs
├── ToggleButtonsViewModel.cs
├── Tree.xaml
└── Tree.xaml.cs
├── Metrolib.Test
├── AbstractControlTest.cs
├── App.cs
├── AssemblySetup.cs
├── Charts
│ ├── Line
│ │ ├── AbstractLineChartCanvasTest.cs
│ │ ├── AxisTest.cs
│ │ ├── LineChartCanvasTest.cs
│ │ ├── LineChartTest.cs
│ │ ├── LineSeriesTest.cs
│ │ └── StackedLineChartCanvasTest.cs
│ ├── Map
│ │ ├── ItemsLayerTest.cs
│ │ └── TileRectangleTest.cs
│ ├── Network
│ │ ├── Algorithms
│ │ │ ├── ForceDirectedLayoutAlgorithmTest.cs
│ │ │ ├── SolvingNodeLayoutAlgorithmTest.cs
│ │ │ └── SpringTest.cs
│ │ ├── ForceDirectedLayoutTest.cs
│ │ ├── NetworkViewNodeItemTest.cs
│ │ └── NetworkViewTest.cs
│ └── Pie
│ │ ├── PieChartLabelItemTest.cs
│ │ ├── PieChartSliceItemTest.cs
│ │ ├── PieChartTest.cs
│ │ └── PieChartValueItemTest.cs
├── Converters
│ ├── AbstractListToStringConverterTest.cs
│ ├── AbstractNumberToStringConverterTest.cs
│ ├── AbstractOneWayValueConverterTest.cs
│ ├── BoolFalseToHiddenConverterTest.cs
│ ├── ByteToStringConverterTest.cs
│ ├── ColorToBrushConverterTest.cs
│ ├── EmptyToCollapsedConverterTest.cs
│ ├── Int32ListToStringConverterTest.cs
│ ├── NonEmptyToCollapsedConverterTest.cs
│ ├── NonEmptyToHiddenConverterTest.cs
│ ├── NullToFalseConverterTest.cs
│ ├── UInt16ToStringConverterTest.cs
│ ├── UInt32ListToStringConverterTest.cs
│ ├── UInt32ToStringConverterTest.cs
│ └── UInt64ToStringConverterTest.cs
├── DelegateCommandTest.cs
├── DependencyObjectExtensionsTest.cs
├── DoubleToPercentageConverterTest.cs
├── FilterTextBoxTest.cs
├── Geometry
│ ├── CircleSegmentTest.cs
│ ├── CircleTest.cs
│ └── TriangleTest.cs
├── Input
│ └── SuggestionInputControlTest.cs
├── InvertBoolConverterTest.cs
├── ItemsToggleButton
│ └── ItemsToggleButtonTest.cs
├── ListSliceTest.cs
├── LocalTestAttribute.cs
├── Metrolib.Test.csproj
├── Panel
│ └── GridPanelTest.cs
├── ProgressBar
│ ├── AbstractProgressBarTest.cs
│ ├── CircularProgressBarTest.cs
│ └── FlatProgressBarTest.cs
├── ScrollViewer
│ ├── FlatScrollViewerStyleTest.cs
│ └── FlatScrollViewerTest.cs
├── SearchTextBoxTest.cs
├── Settings
│ ├── ApplicationSettingsTest.cs
│ └── WindowSettingsTest.cs
├── SizeTest.cs
├── StyleHelper.cs
├── TextBlocks
│ ├── EditableTextBlockTest.cs
│ ├── MarkdownBlockTest.cs
│ ├── MarkdownParserTest.cs
│ └── MarkdownTokenizerTest.cs
├── TextBoxes
│ └── EditorTextBoxTest.cs
├── TimeSpanConverterTest.cs
└── Tree
│ ├── FlatTreeViewItemTest.cs
│ └── FlatTreeViewTest.cs
├── Metrolib
├── AbstractBootstrapper.cs
├── AssemblyInfo.cs
├── Constants.cs
├── Controls
│ ├── AlertControl.cs
│ ├── AlertControl.xaml
│ ├── BulletinItemsControl.cs
│ ├── BulletinItemsControl.xaml
│ ├── Buttons
│ │ ├── AddButton.cs
│ │ ├── AddButton.xaml
│ │ ├── CloseButton.cs
│ │ ├── CloseButton.xaml
│ │ ├── CollapseAllButton.cs
│ │ ├── CollapseAllButton.xaml
│ │ ├── DownloadButton.cs
│ │ ├── DownloadButton.xaml
│ │ ├── ExpandAllButton.cs
│ │ ├── ExpandAllButton.xaml
│ │ ├── ExportButton.cs
│ │ ├── ExportButton.xaml
│ │ ├── FileAddButton.cs
│ │ ├── FileAddButton.xaml
│ │ ├── FlatButton.cs
│ │ ├── FlatButton.xaml
│ │ ├── FlatIconButton.cs
│ │ ├── FlatIconButton.xaml
│ │ ├── FolderAddButton.cs
│ │ ├── FolderAddButton.xaml
│ │ ├── FolderOpenButton.cs
│ │ ├── FolderOpenButton.xaml
│ │ ├── ImportButton.cs
│ │ ├── ImportButton.xaml
│ │ ├── MaximizeButton.cs
│ │ ├── MaximizeButton.xaml
│ │ ├── MinimizeButton.cs
│ │ ├── MinimizeButton.xaml
│ │ ├── MoreButton.cs
│ │ ├── MoreButton.xaml
│ │ ├── NextButton.cs
│ │ ├── NextButton.xaml
│ │ ├── PreviousButton.cs
│ │ ├── PreviousButton.xaml
│ │ ├── RefreshButton.cs
│ │ ├── RefreshButton.xaml
│ │ ├── RemoveButton.cs
│ │ ├── RemoveButton.xaml
│ │ ├── SearchButton.cs
│ │ ├── SearchButton.xaml
│ │ ├── TrashButton.cs
│ │ ├── TrashButton.xaml
│ │ ├── UndoButton.cs
│ │ ├── UndoButton.xaml
│ │ ├── UploadButton.cs
│ │ └── UploadButton.xaml
│ ├── Charts
│ │ ├── AxisControl.cs
│ │ ├── AxisControl.xaml
│ │ ├── Histogram
│ │ │ ├── DateTimeHistogram.cs
│ │ │ └── DateTimeHistogram.xaml
│ │ ├── Line
│ │ │ ├── AxisDefinition.cs
│ │ │ ├── Canvas
│ │ │ │ ├── AbstractLineChartCanvas.cs
│ │ │ │ ├── AbstractLineSeriesCanvas.cs
│ │ │ │ ├── Line
│ │ │ │ │ ├── LineChartCanvas.cs
│ │ │ │ │ └── LineSeriesCanvas.cs
│ │ │ │ └── Stacked
│ │ │ │ │ ├── StackedLineChartCanvas.cs
│ │ │ │ │ └── StackedLineSeriesCanvas.cs
│ │ │ ├── IAxisDefinition.cs
│ │ │ ├── ILineSeries.cs
│ │ │ ├── LineChart.cs
│ │ │ ├── LineChart.xaml
│ │ │ ├── LineChartType.cs
│ │ │ └── LineSeries.cs
│ │ ├── Map
│ │ │ ├── Camera.cs
│ │ │ ├── CameraChangedEventArgs.cs
│ │ │ ├── ITileCache.cs
│ │ │ ├── ItemsLayer.cs
│ │ │ ├── Layer.cs
│ │ │ ├── MapCanvas.cs
│ │ │ ├── MapView.cs
│ │ │ ├── MapView.xaml
│ │ │ ├── MapViewItem.cs
│ │ │ ├── MapViewPointItem.cs
│ │ │ ├── PointItem.xaml
│ │ │ ├── Tile.cs
│ │ │ ├── TileControl.cs
│ │ │ ├── TileDownloader.cs
│ │ │ ├── TileLayer.cs
│ │ │ ├── TileRectangle.cs
│ │ │ └── WebTileLayer.cs
│ │ ├── Network
│ │ │ ├── Algorithms
│ │ │ │ ├── AlgorithmResult.cs
│ │ │ │ ├── ForceDirectedLayoutAlgorithm.cs
│ │ │ │ ├── INodeLayoutAlgorithm.cs
│ │ │ │ └── SolvingNodeLayoutAlgorithm.cs
│ │ │ ├── Direction.cs
│ │ │ ├── Edge.cs
│ │ │ ├── ForceDirectedLayout.cs
│ │ │ ├── IEdge.cs
│ │ │ ├── INode.cs
│ │ │ ├── Layout.cs
│ │ │ ├── NetworkView.cs
│ │ │ ├── NetworkView.xaml
│ │ │ ├── NetworkViewNodeItem.cs
│ │ │ ├── NetworkViewNodeItem.xaml
│ │ │ ├── WidthHeightToRadiusConverter.cs
│ │ │ └── WidthHeightToSizeConverter.cs
│ │ ├── Pie
│ │ │ ├── IPieSeries.cs
│ │ │ ├── IPieSlice.cs
│ │ │ ├── PieChart.cs
│ │ │ ├── PieChartLabelItem.cs
│ │ │ ├── PieChartSliceItem.cs
│ │ │ ├── PieChartValueItem.cs
│ │ │ ├── PieSeries.cs
│ │ │ ├── PieSlice.cs
│ │ │ └── SliceDirection.cs
│ │ └── Range.cs
│ ├── ContextMenu
│ │ ├── FlatContextMenu.cs
│ │ ├── FlatContextMenu.xaml
│ │ ├── FlatMenuItem.cs
│ │ ├── FlatMenuItem.xaml
│ │ ├── MenuItemContentControl.cs
│ │ └── MenuItemContentControl.xaml
│ ├── Expander
│ │ ├── FlatExpander.cs
│ │ └── FlatExpander.xaml
│ ├── FlatBanner.cs
│ ├── FlatBanner.xaml
│ ├── FlatSeparator.cs
│ ├── FlatSeparator.xaml
│ ├── GroupBox
│ │ ├── FlatGroupBox.cs
│ │ └── FlatGroupBox.xaml
│ ├── Input
│ │ ├── SuggestionInputControl.cs
│ │ └── SuggestionInputControl.xaml
│ ├── List
│ │ ├── FlatListView.cs
│ │ ├── FlatListView.xaml
│ │ ├── FlatListViewItem.cs
│ │ └── FlatListViewItem.xaml
│ ├── MouseWheelGesture.cs
│ ├── NotificationBadge.cs
│ ├── NotificationBadge.xaml
│ ├── OpenInNewHyperlink.cs
│ ├── OpenInNewHyperlink.xaml
│ ├── PageOverlay
│ │ ├── PageOverlay.cs
│ │ └── PageOverlay.xaml
│ ├── Panel
│ │ └── GridPanel.cs
│ ├── ProgressBar
│ │ ├── AbstractProgressBar.cs
│ │ ├── CircularProgressBar.cs
│ │ ├── CircularProgressBar.xaml
│ │ ├── FlatProgressBar.cs
│ │ └── FlatProgressBar.xaml
│ ├── Properties.cs
│ ├── Scroll
│ │ ├── FlatScrollBar.cs
│ │ ├── FlatScrollBar.xaml
│ │ ├── FlatScrollViewer.cs
│ │ └── FlatScrollViewer.xaml
│ ├── Tab
│ │ ├── FlatTabControl.cs
│ │ ├── FlatTabControl.xaml
│ │ ├── FlatTabItem.cs
│ │ └── FlatTabItem.xaml
│ ├── TextBlocks
│ │ ├── EditableTextBlock.cs
│ │ ├── EditableTextBlock.xaml
│ │ ├── FlatTextBlock.cs
│ │ ├── FlatTextBlock.xaml
│ │ ├── FlavourTextBlock.cs
│ │ ├── FlavourTextBlock.xaml
│ │ ├── HyperlinkRun.cs
│ │ ├── MarkdownParser.cs
│ │ ├── MarkdownPresenter.cs
│ │ ├── MarkdownPresenter.xaml
│ │ ├── MarkdownToken.cs
│ │ ├── MarkdownTokenType.cs
│ │ └── MarkdownTokenizer.cs
│ ├── TextBoxes
│ │ ├── EditorTextBox.cs
│ │ ├── EditorTextBox.xaml
│ │ ├── FilterTextBox.cs
│ │ ├── FilterTextBox.xaml
│ │ ├── FlatPasswordBox.cs
│ │ ├── FlatPasswordBox.xaml
│ │ ├── PathChooserTextBox.cs
│ │ ├── PathChooserTextBox.xaml
│ │ ├── SearchTextBox.cs
│ │ └── SearchTextBox.xaml
│ ├── ToggleButtons
│ │ ├── AlarmToggleButton.cs
│ │ ├── AlarmToggleButton.xaml
│ │ ├── EditToggleButton.cs
│ │ ├── EditToggleButton.xaml
│ │ ├── EmailToggleButton.cs
│ │ ├── EmailToggleButton.xaml
│ │ ├── ExpanderToggleButton.cs
│ │ ├── ExpanderToggleButton.xaml
│ │ ├── FlatToggleButton.cs
│ │ ├── FlatToggleButton.xaml
│ │ ├── ItemsToggleButton.cs
│ │ ├── ItemsToggleButton.xaml
│ │ ├── OneWayToggle.cs
│ │ ├── OneWayToggle.xaml
│ │ ├── PinToggleButton.cs
│ │ ├── PinToggleButton.xaml
│ │ ├── PluginToggleButton.cs
│ │ ├── PluginToggleButton.xaml
│ │ ├── SwitchToggleButton.cs
│ │ ├── SwitchToggleButton.xaml
│ │ ├── ToggleButtonBase.cs
│ │ ├── ToggleButtonBase.xaml
│ │ ├── ToggleButtonItemViewModel.cs
│ │ ├── ViewDashboardToggleButton.cs
│ │ ├── ViewDashboardToggleButton.xaml
│ │ ├── ViewQuiltToggleButton.cs
│ │ ├── ViewQuiltToggleButton.xaml
│ │ ├── VisibilityToggleButton.cs
│ │ └── VisibilityToggleButton.xaml
│ ├── ToggleContentPresenter.cs
│ ├── ToggleContentPresenter.xaml
│ ├── Tree
│ │ ├── FlatTreeView.cs
│ │ ├── FlatTreeView.xaml
│ │ ├── FlatTreeViewItem.cs
│ │ ├── FlatTreeViewItem.xaml
│ │ ├── ITreeViewItemViewModel.cs
│ │ └── LeftMarginMultiplierConverter.cs
│ └── Windows
│ │ ├── ChromelessWindow.cs
│ │ └── ChromelessWindow.xaml
├── Converters
│ ├── AbstractNumericListToStringConverter.cs
│ ├── BoolFalseToCollapsedConverter.cs
│ ├── BoolFalseToHiddenConverter.cs
│ ├── BoolTrueToCollapsedConverter.cs
│ ├── BoolTrueToHiddenConverter.cs
│ ├── ByteToStringConverter.cs
│ ├── ColorToBrushConverter.cs
│ ├── Converters.xaml
│ ├── CountConverter.cs
│ ├── DoubleToPercentageConverter.cs
│ ├── DoubleToThicknessConverter.cs
│ ├── EmptyToCollapsedConverter.cs
│ ├── EmptyToHiddenConverter.cs
│ ├── GeoLocationConverter.cs
│ ├── HorizontalToCollapsedConverter.cs
│ ├── IncrementByOneConverter.cs
│ ├── Int32ListToStringConverter.cs
│ ├── InvertBoolConverter.cs
│ ├── MultiplierConverter.cs
│ ├── NegateConverter.cs
│ ├── NonEmptyStringToVisibleConverter.cs
│ ├── NonEmptyToCollapsedConverter.cs
│ ├── NonEmptyToHiddenConverter.cs
│ ├── NullImageConverter.cs
│ ├── NullOrEmptyStringToVisibleConverter.cs
│ ├── NullToCollapsedConverter.cs
│ ├── NullToFalseConverter.cs
│ ├── NullToHiddenConverter.cs
│ ├── NullToVisibleConverter.cs
│ ├── TimeSpanConverter.cs
│ ├── UIn32ToStringConverter.cs
│ ├── UInt16ToStringConverter.cs
│ ├── UInt32ListToStringConverter.cs
│ ├── UInt64ToStringConverter.cs
│ ├── Unit.cs
│ └── VerticalToCollapsedConverter.cs
├── DelegateCommand.cs
├── DelegateCommand2.cs
├── Extensions
│ ├── DependencyObjectExtensions.cs
│ ├── FocusExtension.cs
│ ├── RandomExtensions.cs
│ ├── VectorExtensions.cs
│ ├── VersionExtensions.cs
│ └── XmlExtensions.cs
├── FrameworkElementExtensions.cs
├── Geography
│ ├── GeoLocation.cs
│ ├── MercatorLocation.cs
│ └── MercatorRectangle.cs
├── Geometry
│ ├── Angle.cs
│ ├── Circle.cs
│ ├── CircleSegment.cs
│ └── Triangle.cs
├── IDispatcher.cs
├── Icons.cs
├── ListSlice.cs
├── ListSliceDebugView.cs
├── ManualDispatcher.cs
├── Metrolib.csproj
├── Physics
│ ├── Attractor.cs
│ ├── Body.cs
│ ├── EulerIntegrator.cs
│ └── Spring.cs
├── Properties
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── ReadOnlyListExtensions.cs
├── Settings
│ ├── ApplicationSettings.cs
│ └── WindowSettings.cs
├── Size.cs
├── Themes
│ ├── Constants.xaml
│ └── Generic.xaml
└── UiDispatcher.cs
├── Netstat
├── App.cs
├── AssemblyInfo.cs
├── BusinessLogic
│ ├── Engine.cs
│ ├── INetstatListener.cs
│ ├── Netstat.cs
│ ├── ProcessDescriptor.cs
│ ├── TcpConnectionDescriptor.cs
│ └── TcpConnectionEqualityComparer.cs
├── EndPointViewModel.cs
├── LocalComputerViewModel.cs
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── MainWindowViewModel.cs
├── Netstat.csproj
└── TcpConnectionViewModel.cs
└── TwitterLiveStream
├── App.xaml
├── App.xaml.cs
├── AssemblyInfo.cs
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── Properties
├── Resources.Designer.cs
├── Resources.resx
├── Settings.Designer.cs
└── Settings.settings
└── TwitterLiveStream.csproj
/.gitignore:
--------------------------------------------------------------------------------
1 | Thumbs.db
2 | *.obj
3 | *.exe
4 | *.pdb
5 | *.user
6 | *.aps
7 | *.pch
8 | *.vspscc
9 | *_i.c
10 | *_p.c
11 | *.ncb
12 | *.suo
13 | *.sln.docstates
14 | *.tlb
15 | *.tlh
16 | *.bak
17 | *.cache
18 | *.ilk
19 | *.log
20 | [Bb]in
21 | [Dd]ebug*/
22 | *.lib
23 | *.sbr
24 | obj/
25 | _ReSharper*/
26 | [Tt]est[Rr]esult*
27 | *.vssscc
28 | $tf*/
29 | *.nupkg
30 |
31 | /packages
32 |
33 | # Visual C++ cache files
34 | ipch/
35 | *.aps
36 | *.ncb
37 | *.opensdf
38 | *.sdf
39 | *.cachefile
40 | .vs/
41 |
42 | *.psess
43 | *.vspx
--------------------------------------------------------------------------------
/Documentation/DocumentationCreator.Calculator/Calculator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/DocumentationCreator.Calculator/Calculator.png
--------------------------------------------------------------------------------
/Documentation/DocumentationCreator.Calculator/README.md:
--------------------------------------------------------------------------------
1 | # Calculator
2 |
3 | **Namespace**: DocumentationCreator
4 | **Assembly**: DocumentationCreator (in DocumentationCreator.dll)
5 |
6 | ```C#
7 | public class Calculator : System.Windows.Controls.UserControl
8 | ```
9 |
10 | Inheritance Object -> DispatcherObject -> DependencyObject -> Visual -> UIElement -> FrameworkElement -> Control -> ContentControl -> UserControl -> Calculator
11 | ### Calculator
12 |
13 | ```xaml
14 |
15 |
16 | ```
17 | 
18 |
19 |
--------------------------------------------------------------------------------
/Documentation/DocumentationCreator.SolutionExplorer/Explorer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/DocumentationCreator.SolutionExplorer/Explorer.png
--------------------------------------------------------------------------------
/Documentation/DocumentationCreator.SolutionExplorer/README.md:
--------------------------------------------------------------------------------
1 | # SolutionExplorer
2 |
3 | **Namespace**: DocumentationCreator
4 | **Assembly**: DocumentationCreator (in DocumentationCreator.dll)
5 |
6 | ```C#
7 | public class SolutionExplorer : System.Windows.Controls.UserControl
8 | ```
9 |
10 | Inheritance Object -> DispatcherObject -> DependencyObject -> Visual -> UIElement -> FrameworkElement -> Control -> ContentControl -> UserControl -> SolutionExplorer
11 | ### Explorer
12 |
13 | ```xaml
14 |
15 |
16 | ```
17 | 
18 |
19 |
--------------------------------------------------------------------------------
/Documentation/HyperlinkRun/Normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/HyperlinkRun/Normal.png
--------------------------------------------------------------------------------
/Documentation/LineChart/Default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/LineChart/Default.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.AddButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.AddButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.AddButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.AddButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.AddButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.AddButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.AddButton/README.md:
--------------------------------------------------------------------------------
1 | # AddButton
2 |
3 | A button that can be used to add things (files, items to a list, etc...).
4 |
5 | Displays a plus sign.
6 |
7 | **Namespace**: Metrolib.Controls
8 | **Assembly**: Metrolib (in Metrolib.dll)
9 |
10 | ```C#
11 | public class AddButton : Metrolib.Controls.FlatIconButton
12 | ```
13 |
14 | Inheritance Object -> DispatcherObject -> DependencyObject -> Visual -> UIElement -> FrameworkElement -> Control -> ContentControl -> ButtonBase -> Button -> FlatButton -> FlatIconButton -> AddButton
15 | ### Unfocused
16 |
17 | ```xaml
18 |
19 |
20 | ```
21 | 
22 |
23 | ### Hovered
24 |
25 | ```xaml
26 |
27 |
28 | ```
29 | 
30 |
31 | ### Pressed
32 |
33 | ```xaml
34 |
35 |
36 | ```
37 | 
38 |
39 | ### Disabled
40 |
41 | ```xaml
42 |
43 |
44 | ```
45 | 
46 |
47 | # Properties
48 |
49 |
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.AddButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.AddButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.AlarmToggleButton/Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.AlarmToggleButton/Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.AlarmToggleButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.AlarmToggleButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.AlarmToggleButton/Disabled_Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.AlarmToggleButton/Disabled_Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.AlarmToggleButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.AlarmToggleButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CircularProgressBar/100__progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CircularProgressBar/100__progress.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CircularProgressBar/50__progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CircularProgressBar/50__progress.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CircularProgressBar/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CircularProgressBar/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CircularProgressBar/Indeterminate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CircularProgressBar/Indeterminate.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CircularProgressBar/Indeterminate__Content.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CircularProgressBar/Indeterminate__Content.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CircularProgressBar/No_progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CircularProgressBar/No_progress.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CloseButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CloseButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CloseButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CloseButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CloseButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CloseButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CloseButton/README.md:
--------------------------------------------------------------------------------
1 | # CloseButton
2 |
3 | A button which can be used to close something (for example a window).
4 |
5 | Displays a (rotated) cross.
6 |
7 | **Namespace**: Metrolib.Controls
8 | **Assembly**: Metrolib (in Metrolib.dll)
9 |
10 | ```C#
11 | public class CloseButton : Metrolib.Controls.FlatIconButton
12 | ```
13 |
14 | Inheritance Object -> DispatcherObject -> DependencyObject -> Visual -> UIElement -> FrameworkElement -> Control -> ContentControl -> ButtonBase -> Button -> FlatButton -> FlatIconButton -> CloseButton
15 | ### Unfocused
16 |
17 | ```xaml
18 |
19 |
20 | ```
21 | 
22 |
23 | ### Hovered
24 |
25 | ```xaml
26 |
27 |
28 | ```
29 | 
30 |
31 | ### Pressed
32 |
33 | ```xaml
34 |
35 |
36 | ```
37 | 
38 |
39 | ### Disabled
40 |
41 | ```xaml
42 |
43 |
44 | ```
45 | 
46 |
47 | # Properties
48 |
49 |
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CloseButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CloseButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CollapseAllButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CollapseAllButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CollapseAllButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CollapseAllButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CollapseAllButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CollapseAllButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.CollapseAllButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.CollapseAllButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.DownloadButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.DownloadButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.DownloadButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.DownloadButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.DownloadButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.DownloadButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.DownloadButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.DownloadButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.EditToggleButton/Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.EditToggleButton/Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.EditToggleButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.EditToggleButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.EditToggleButton/Disabled_Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.EditToggleButton/Disabled_Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.EditToggleButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.EditToggleButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.EditorTextBox/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.EditorTextBox/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.EditorTextBox/Focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.EditorTextBox/Focused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.EditorTextBox/Text__Focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.EditorTextBox/Text__Focused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.EditorTextBox/Text__Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.EditorTextBox/Text__Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.EditorTextBox/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.EditorTextBox/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.EmailToggleButton/Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.EmailToggleButton/Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.EmailToggleButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.EmailToggleButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.EmailToggleButton/Disabled_Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.EmailToggleButton/Disabled_Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.EmailToggleButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.EmailToggleButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ExpandAllButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ExpandAllButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ExpandAllButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ExpandAllButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ExpandAllButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ExpandAllButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ExpandAllButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ExpandAllButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ExpanderToggleButton/Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ExpanderToggleButton/Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ExpanderToggleButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ExpanderToggleButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ExpanderToggleButton/Disabled_Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ExpanderToggleButton/Disabled_Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ExpanderToggleButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ExpanderToggleButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ExportButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ExportButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ExportButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ExportButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ExportButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ExportButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ExportButton/README.md:
--------------------------------------------------------------------------------
1 | # ExportButton
2 |
3 | A simple button that allows for the export of data.
4 |
5 | Displays a file with an arrow to top right.
6 |
7 | **Namespace**: Metrolib.Controls
8 | **Assembly**: Metrolib (in Metrolib.dll)
9 |
10 | ```C#
11 | public class ExportButton : Metrolib.Controls.FlatIconButton
12 | ```
13 |
14 | Inheritance Object -> DispatcherObject -> DependencyObject -> Visual -> UIElement -> FrameworkElement -> Control -> ContentControl -> ButtonBase -> Button -> FlatButton -> FlatIconButton -> ExportButton
15 | ### Unfocused
16 |
17 | ```xaml
18 |
19 |
20 | ```
21 | 
22 |
23 | ### Hovered
24 |
25 | ```xaml
26 |
27 |
28 | ```
29 | 
30 |
31 | ### Pressed
32 |
33 | ```xaml
34 |
35 |
36 | ```
37 | 
38 |
39 | ### Disabled
40 |
41 | ```xaml
42 |
43 |
44 | ```
45 | 
46 |
47 | # Properties
48 |
49 |
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ExportButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ExportButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FileAddButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FileAddButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FileAddButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FileAddButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FileAddButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FileAddButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FileAddButton/README.md:
--------------------------------------------------------------------------------
1 | # FileAddButton
2 |
3 | A simple button that allows for adding files.
4 |
5 | Displays a file with a plus.
6 |
7 | **Namespace**: Metrolib.Controls
8 | **Assembly**: Metrolib (in Metrolib.dll)
9 |
10 | ```C#
11 | public class FileAddButton : Metrolib.Controls.FlatIconButton
12 | ```
13 |
14 | Inheritance Object -> DispatcherObject -> DependencyObject -> Visual -> UIElement -> FrameworkElement -> Control -> ContentControl -> ButtonBase -> Button -> FlatButton -> FlatIconButton -> FileAddButton
15 | ### Unfocused
16 |
17 | ```xaml
18 |
19 |
20 | ```
21 | 
22 |
23 | ### Hovered
24 |
25 | ```xaml
26 |
27 |
28 | ```
29 | 
30 |
31 | ### Pressed
32 |
33 | ```xaml
34 |
35 |
36 | ```
37 | 
38 |
39 | ### Disabled
40 |
41 | ```xaml
42 |
43 |
44 | ```
45 | 
46 |
47 | # Properties
48 |
49 |
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FileAddButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FileAddButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FilterTextBox/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FilterTextBox/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FilterTextBox/FilterText__Focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FilterTextBox/FilterText__Focused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FilterTextBox/FilterText__Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FilterTextBox/FilterText__Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FilterTextBox/Focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FilterTextBox/Focused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FilterTextBox/Invalid_FilterText.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FilterTextBox/Invalid_FilterText.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FilterTextBox/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FilterTextBox/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FlatPasswordBox/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FlatPasswordBox/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FlatPasswordBox/Focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FlatPasswordBox/Focused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FlatPasswordBox/Password__Focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FlatPasswordBox/Password__Focused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FlatPasswordBox/Password__Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FlatPasswordBox/Password__Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FlatPasswordBox/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FlatPasswordBox/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FlatProgressBar/100__progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FlatProgressBar/100__progress.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FlatProgressBar/50__progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FlatProgressBar/50__progress.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FlatProgressBar/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FlatProgressBar/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FlatProgressBar/Indeterminate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FlatProgressBar/Indeterminate.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FlatProgressBar/No_progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FlatProgressBar/No_progress.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FolderAddButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FolderAddButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FolderAddButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FolderAddButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FolderAddButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FolderAddButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FolderAddButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FolderAddButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FolderOpenButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FolderOpenButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FolderOpenButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FolderOpenButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FolderOpenButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FolderOpenButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.FolderOpenButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.FolderOpenButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ImportButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ImportButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ImportButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ImportButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ImportButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ImportButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ImportButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ImportButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MarkdownPresenter/Bold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MarkdownPresenter/Bold.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MarkdownPresenter/Bold_and_Italic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MarkdownPresenter/Bold_and_Italic.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MarkdownPresenter/Hyperlink.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MarkdownPresenter/Hyperlink.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MarkdownPresenter/Italic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MarkdownPresenter/Italic.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MarkdownPresenter/Strikethrough.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MarkdownPresenter/Strikethrough.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MaximizeButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MaximizeButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MaximizeButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MaximizeButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MaximizeButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MaximizeButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MaximizeButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MaximizeButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MinimizeButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MinimizeButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MinimizeButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MinimizeButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MinimizeButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MinimizeButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MinimizeButton/README.md:
--------------------------------------------------------------------------------
1 | # MinimizeButton
2 |
3 | A button to minimize something, for example a window.
4 |
5 | **Namespace**: Metrolib.Controls
6 | **Assembly**: Metrolib (in Metrolib.dll)
7 |
8 | ```C#
9 | public class MinimizeButton : Metrolib.Controls.FlatButton
10 | ```
11 |
12 | Inheritance Object -> DispatcherObject -> DependencyObject -> Visual -> UIElement -> FrameworkElement -> Control -> ContentControl -> ButtonBase -> Button -> FlatButton -> MinimizeButton
13 | ### Unfocused
14 |
15 | ```xaml
16 |
17 |
18 | ```
19 | 
20 |
21 | ### Hovered
22 |
23 | ```xaml
24 |
25 |
26 | ```
27 | 
28 |
29 | ### Pressed
30 |
31 | ```xaml
32 |
33 |
34 | ```
35 | 
36 |
37 | ### Disabled
38 |
39 | ```xaml
40 |
41 |
42 | ```
43 | 
44 |
45 | # Properties
46 |
47 |
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MinimizeButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MinimizeButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MoreButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MoreButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MoreButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MoreButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MoreButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MoreButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.MoreButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.MoreButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.NextButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.NextButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.NextButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.NextButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.NextButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.NextButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.NextButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.NextButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PathChooserTextBox/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PathChooserTextBox/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PathChooserTextBox/Focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PathChooserTextBox/Focused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PathChooserTextBox/Text__Focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PathChooserTextBox/Text__Focused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PathChooserTextBox/Text__Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PathChooserTextBox/Text__Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PathChooserTextBox/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PathChooserTextBox/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PinToggleButton/Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PinToggleButton/Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PinToggleButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PinToggleButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PinToggleButton/Disabled_Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PinToggleButton/Disabled_Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PinToggleButton/RotateWhenUnchecked_Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PinToggleButton/RotateWhenUnchecked_Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PinToggleButton/RotateWhenUnchecked_Unchecked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PinToggleButton/RotateWhenUnchecked_Unchecked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PinToggleButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PinToggleButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PluginToggleButton/Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PluginToggleButton/Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PluginToggleButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PluginToggleButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PluginToggleButton/Disabled_Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PluginToggleButton/Disabled_Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PluginToggleButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PluginToggleButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PreviousButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PreviousButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PreviousButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PreviousButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PreviousButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PreviousButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.PreviousButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.PreviousButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.RefreshButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.RefreshButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.RefreshButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.RefreshButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.RefreshButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.RefreshButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.RefreshButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.RefreshButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.RemoveButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.RemoveButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.RemoveButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.RemoveButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.RemoveButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.RemoveButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.RemoveButton/README.md:
--------------------------------------------------------------------------------
1 | # RemoveButton
2 |
3 | A button used to remove something, for example an item in a list.
4 |
5 | Displays a minus sign.
6 |
7 | **Namespace**: Metrolib.Controls
8 | **Assembly**: Metrolib (in Metrolib.dll)
9 |
10 | ```C#
11 | public class RemoveButton : Metrolib.Controls.FlatIconButton
12 | ```
13 |
14 | Inheritance Object -> DispatcherObject -> DependencyObject -> Visual -> UIElement -> FrameworkElement -> Control -> ContentControl -> ButtonBase -> Button -> FlatButton -> FlatIconButton -> RemoveButton
15 | ### Unfocused
16 |
17 | ```xaml
18 |
19 |
20 | ```
21 | 
22 |
23 | ### Hovered
24 |
25 | ```xaml
26 |
27 |
28 | ```
29 | 
30 |
31 | ### Pressed
32 |
33 | ```xaml
34 |
35 |
36 | ```
37 | 
38 |
39 | ### Disabled
40 |
41 | ```xaml
42 |
43 |
44 | ```
45 | 
46 |
47 | # Properties
48 |
49 |
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.RemoveButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.RemoveButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.SearchButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.SearchButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.SearchButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.SearchButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.SearchButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.SearchButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.SearchButton/README.md:
--------------------------------------------------------------------------------
1 | # SearchButton
2 |
3 | A button to initiate a search.
4 |
5 | Displays a magnifying glass.
6 |
7 | **Namespace**: Metrolib.Controls
8 | **Assembly**: Metrolib (in Metrolib.dll)
9 |
10 | ```C#
11 | public class SearchButton : Metrolib.Controls.FlatIconButton
12 | ```
13 |
14 | Inheritance Object -> DispatcherObject -> DependencyObject -> Visual -> UIElement -> FrameworkElement -> Control -> ContentControl -> ButtonBase -> Button -> FlatButton -> FlatIconButton -> SearchButton
15 | ### Unfocused
16 |
17 | ```xaml
18 |
19 |
20 | ```
21 | 
22 |
23 | ### Hovered
24 |
25 | ```xaml
26 |
27 |
28 | ```
29 | 
30 |
31 | ### Pressed
32 |
33 | ```xaml
34 |
35 |
36 | ```
37 | 
38 |
39 | ### Disabled
40 |
41 | ```xaml
42 |
43 |
44 | ```
45 | 
46 |
47 | # Properties
48 |
49 |
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.SearchButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.SearchButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.SearchTextBox/FilterText__Focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.SearchTextBox/FilterText__Focused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.SearchTextBox/Focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.SearchTextBox/Focused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.SearchTextBox/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.SearchTextBox/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.SwitchToggleButton/Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.SwitchToggleButton/Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.SwitchToggleButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.SwitchToggleButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.SwitchToggleButton/Disabled_Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.SwitchToggleButton/Disabled_Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.SwitchToggleButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.SwitchToggleButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.TrashButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.TrashButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.TrashButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.TrashButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.TrashButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.TrashButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.TrashButton/README.md:
--------------------------------------------------------------------------------
1 | # TrashButton
2 |
3 | A button that can be used to delete things (files, items to a list, etc...).
4 |
5 | Displays a trashcan.
6 |
7 | **Namespace**: Metrolib.Controls
8 | **Assembly**: Metrolib (in Metrolib.dll)
9 |
10 | ```C#
11 | public class TrashButton : Metrolib.Controls.FlatIconButton
12 | ```
13 |
14 | Inheritance Object -> DispatcherObject -> DependencyObject -> Visual -> UIElement -> FrameworkElement -> Control -> ContentControl -> ButtonBase -> Button -> FlatButton -> FlatIconButton -> TrashButton
15 | ### Unfocused
16 |
17 | ```xaml
18 |
19 |
20 | ```
21 | 
22 |
23 | ### Hovered
24 |
25 | ```xaml
26 |
27 |
28 | ```
29 | 
30 |
31 | ### Pressed
32 |
33 | ```xaml
34 |
35 |
36 | ```
37 | 
38 |
39 | ### Disabled
40 |
41 | ```xaml
42 |
43 |
44 | ```
45 | 
46 |
47 | # Properties
48 |
49 |
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.TrashButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.TrashButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.UndoButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.UndoButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.UndoButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.UndoButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.UndoButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.UndoButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.UndoButton/README.md:
--------------------------------------------------------------------------------
1 | # UndoButton
2 |
3 | A button to undo something, for example a textbox change.
4 |
5 | Displays an curved arrow to the left.
6 |
7 | **Namespace**: Metrolib.Controls
8 | **Assembly**: Metrolib (in Metrolib.dll)
9 |
10 | ```C#
11 | public class UndoButton : Metrolib.Controls.FlatIconButton
12 | ```
13 |
14 | Inheritance Object -> DispatcherObject -> DependencyObject -> Visual -> UIElement -> FrameworkElement -> Control -> ContentControl -> ButtonBase -> Button -> FlatButton -> FlatIconButton -> UndoButton
15 | ### Unfocused
16 |
17 | ```xaml
18 |
19 |
20 | ```
21 | 
22 |
23 | ### Hovered
24 |
25 | ```xaml
26 |
27 |
28 | ```
29 | 
30 |
31 | ### Pressed
32 |
33 | ```xaml
34 |
35 |
36 | ```
37 | 
38 |
39 | ### Disabled
40 |
41 | ```xaml
42 |
43 |
44 | ```
45 | 
46 |
47 | # Properties
48 |
49 |
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.UndoButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.UndoButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.UploadButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.UploadButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.UploadButton/Hovered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.UploadButton/Hovered.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.UploadButton/Pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.UploadButton/Pressed.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.UploadButton/README.md:
--------------------------------------------------------------------------------
1 | # UploadButton
2 |
3 | A button which can be used to upload something.
4 |
5 | Displays an upward arrow with a line beneath.
6 |
7 | **Namespace**: Metrolib.Controls
8 | **Assembly**: Metrolib (in Metrolib.dll)
9 |
10 | ```C#
11 | public class UploadButton : Metrolib.Controls.FlatIconButton
12 | ```
13 |
14 | Inheritance Object -> DispatcherObject -> DependencyObject -> Visual -> UIElement -> FrameworkElement -> Control -> ContentControl -> ButtonBase -> Button -> FlatButton -> FlatIconButton -> UploadButton
15 | ### Unfocused
16 |
17 | ```xaml
18 |
19 |
20 | ```
21 | 
22 |
23 | ### Hovered
24 |
25 | ```xaml
26 |
27 |
28 | ```
29 | 
30 |
31 | ### Pressed
32 |
33 | ```xaml
34 |
35 |
36 | ```
37 | 
38 |
39 | ### Disabled
40 |
41 | ```xaml
42 |
43 |
44 | ```
45 | 
46 |
47 | # Properties
48 |
49 |
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.UploadButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.UploadButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ViewDashboardToggleButton/Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ViewDashboardToggleButton/Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ViewDashboardToggleButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ViewDashboardToggleButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ViewDashboardToggleButton/Disabled_Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ViewDashboardToggleButton/Disabled_Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ViewDashboardToggleButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ViewDashboardToggleButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ViewQuiltToggleButton/Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ViewQuiltToggleButton/Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ViewQuiltToggleButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ViewQuiltToggleButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ViewQuiltToggleButton/Disabled_Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ViewQuiltToggleButton/Disabled_Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.ViewQuiltToggleButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.ViewQuiltToggleButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.VisibilityToggleButton/Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.VisibilityToggleButton/Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.VisibilityToggleButton/Disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.VisibilityToggleButton/Disabled.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.VisibilityToggleButton/Disabled_Checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.VisibilityToggleButton/Disabled_Checked.png
--------------------------------------------------------------------------------
/Documentation/Metrolib.Controls.VisibilityToggleButton/Unfocused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/Metrolib.Controls.VisibilityToggleButton/Unfocused.png
--------------------------------------------------------------------------------
/Documentation/NetworkView/Normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/NetworkView/Normal.png
--------------------------------------------------------------------------------
/Documentation/OpenInNewHyperlink/Normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/OpenInNewHyperlink/Normal.png
--------------------------------------------------------------------------------
/Documentation/PieChart/FavouriteBars.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/Documentation/PieChart/FavouriteBars.png
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2017 Simon Mießler
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/publish.cmd:
--------------------------------------------------------------------------------
1 | @setlocal
2 | @echo off
3 |
4 | echo Files in directory:
5 | dir . /a-d
6 |
7 | echo Looking for nuget package...
8 | FOR %%F IN (Metrolib.*.nupkg) DO (
9 | set NUGET_PACKAGE=%%F
10 | )
11 |
12 | if not %NUGET_PACKAGE%=="" (
13 | if "%APPVEYOR_REPO_BRANCH%"=="master" (
14 | echo Publishing nuget package...
15 | @nuget push -Source https://api.nuget.org/v3/index.json -ApiKey %NUGET_API_KEY% %NUGET_PACKAGE%
16 | ) else (
17 | echo Not publishing from this branch...
18 | )
19 | ) else (
20 | echo Did not find anything to publish!
21 | )
22 |
--------------------------------------------------------------------------------
/restore_key.cmd:
--------------------------------------------------------------------------------
1 | @setlocal
2 | @echo off
3 |
4 | sig\crypt.exe decrypt sig\sns key.snk
5 | sig\crypt.exe enablesigning src\Metrolib\Metrolib.csproj ..\..\key.snk
6 | sig\crypt.exe enablesigning src\Metrolib.Test\Metrolib.Test.csproj ..\..\key.snk
7 |
--------------------------------------------------------------------------------
/sig/.gitignore:
--------------------------------------------------------------------------------
1 | *.snk
2 | !crypt.exe
--------------------------------------------------------------------------------
/sig/Crypt.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/sig/Crypt.exe
--------------------------------------------------------------------------------
/sig/sns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/sig/sns
--------------------------------------------------------------------------------
/src/DocumentationCreator/Bootstrapper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Reflection;
3 | using log4net;
4 |
5 | namespace DocumentationCreator
6 | {
7 | static class Bootstrapper
8 | {
9 | private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
10 |
11 | [STAThread]
12 | public static int Main(string[] arguments)
13 | {
14 | try
15 | {
16 | return Documentation.Run();
17 | }
18 | catch (Exception e)
19 | {
20 | Log.ErrorFormat("Caught unexpected exception: {0}", e);
21 | return -1;
22 | }
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/DocumentationCreator/Calculator.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace DocumentationCreator
17 | {
18 | ///
19 | /// Interaction logic for Calculator.xaml
20 | ///
21 | public partial class Calculator : UserControl
22 | {
23 | public Calculator()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/DocumentationCreator/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/DocumentationCreator/SolutionExplorer.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace DocumentationCreator
2 | {
3 | public partial class SolutionExplorer
4 | {
5 | public SolutionExplorer()
6 | {
7 | InitializeComponent();
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Buttons.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace Metrolib.Sample
2 | {
3 | public partial class Buttons
4 | {
5 | public Buttons()
6 | {
7 | InitializeComponent();
8 | }
9 | }
10 | }
--------------------------------------------------------------------------------
/src/Metrolib.Sample/CityViewModel.cs:
--------------------------------------------------------------------------------
1 | namespace Metrolib.Sample
2 | {
3 | public sealed class CityViewModel
4 | {
5 | public string Name { get; set; }
6 | }
7 | }
--------------------------------------------------------------------------------
/src/Metrolib.Sample/ContentControls.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace Metrolib.Sample
2 | {
3 | public partial class ContentControls
4 | {
5 | public ContentControls()
6 | {
7 | InitializeComponent();
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/ContentPresenters.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace Metrolib.Sample
17 | {
18 | ///
19 | /// Interaction logic for ContentPresenters.xaml
20 | ///
21 | public partial class ContentPresenters : UserControl
22 | {
23 | public ContentPresenters()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Dialogs.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace Metrolib.Sample
2 | {
3 | public partial class Dialogs
4 | {
5 | public Dialogs()
6 | {
7 | InitializeComponent();
8 |
9 | DataContext = new DialogsViewModel();
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/EdgeType.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Linq;
3 |
4 | namespace Metrolib.Sample
5 | {
6 | public sealed class EdgeType
7 | {
8 | private readonly IEnumerable _edges;
9 | private readonly string _name;
10 |
11 | public EdgeType(string name, IEnumerable edges)
12 | {
13 | _name = name;
14 | _edges = edges;
15 | }
16 |
17 | public string Name
18 | {
19 | get { return _name; }
20 | }
21 |
22 | public IEnumerable Edges
23 | {
24 | get { return _edges; }
25 | }
26 |
27 | public override string ToString()
28 | {
29 | return string.Format("{0}: {1} edges", _name, _edges.Count());
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/src/Metrolib.Sample/EditBoxes.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/EditBoxes.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace Metrolib.Sample
17 | {
18 | ///
19 | /// Interaction logic for EditBoxes.xaml
20 | ///
21 | public partial class EditBoxes : UserControl
22 | {
23 | public EditBoxes()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/HistogramCharts.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/HistogramCharts.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace Metrolib.Sample
17 | {
18 | ///
19 | /// Interaction logic for HistogramCharts.xaml
20 | ///
21 | public partial class HistogramCharts : UserControl
22 | {
23 | public HistogramCharts()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Items.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 | Foo
14 | Bar
15 | Clondyke Bar
16 |
17 |
18 |
19 |
20 |
22 |
23 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Items.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace Metrolib.Sample
17 | {
18 | ///
19 | /// Interaction logic for Items.xaml
20 | ///
21 | public partial class Items : UserControl
22 | {
23 | public Items()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/LineCharts.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using System.Windows.Threading;
4 |
5 | namespace Metrolib.Sample
6 | {
7 | public partial class LineCharts
8 | {
9 | private readonly DispatcherTimer _timer;
10 |
11 | public LineCharts()
12 | {
13 | InitializeComponent();
14 |
15 | _timer = new DispatcherTimer
16 | {
17 | Interval = TimeSpan.FromMilliseconds(60)
18 | };
19 | _timer.Tick += TimerOnTick;
20 | _timer.Start();
21 |
22 | Stacked.IsChecked = true;
23 | }
24 |
25 | private void TimerOnTick(object sender, EventArgs eventArgs)
26 | {
27 | /*for (int i = 0; i < _curve.Count; ++i)
28 | {
29 | double y = Math.Cos(i/10.0) + _random.NextDouble() / 4;
30 | _curve[i] = new Point(1.0*i/10, y);
31 | }*/
32 | }
33 |
34 | private void OnNormalChecked(object sender, RoutedEventArgs e)
35 | {
36 | PART_Chart.ChartType = LineChartType.Normal;
37 | }
38 |
39 | private void OnStackedChecked(object sender, RoutedEventArgs e)
40 | {
41 | PART_Chart.ChartType = LineChartType.Stacked;
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Lists.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Lists.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Metrolib.Sample
4 | {
5 | public partial class Lists
6 | {
7 | public Lists()
8 | {
9 | InitializeComponent();
10 | }
11 |
12 | public List Items
13 | {
14 | get
15 | {
16 | return new List
17 | {
18 | "Luke Cage",
19 | "Daredevil",
20 | "Jessica Jones",
21 | "Punisher",
22 | "Steve Rogers",
23 | "Bruce Banner",
24 | "Tony Stark",
25 | "Thor",
26 | "Natasha Romanoff",
27 | "Clint Barton",
28 | "Loki",
29 | "Phil Coulson",
30 | "Maria Hill",
31 | "Nick Fury"
32 | };
33 | }
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/src/Metrolib.Sample/MainWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace Metrolib.Sample
2 | {
3 | public partial class MainWindow
4 | {
5 | public MainWindow()
6 | {
7 | InitializeComponent();
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/MapCharts.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace Metrolib.Sample
2 | {
3 | public partial class MapCharts
4 | {
5 | public MapCharts()
6 | {
7 | InitializeComponent();
8 | }
9 | }
10 | }
--------------------------------------------------------------------------------
/src/Metrolib.Sample/MarvelCharacterViewModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Metrolib.Sample
4 | {
5 | public sealed class MarvelCharacterViewModel
6 | : INode
7 | {
8 | public string Name { get; set; }
9 | public Uri Portrait { get; set; }
10 |
11 | public override string ToString()
12 | {
13 | return Name;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/src/Metrolib.Sample/NetworkCharts.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace Metrolib.Sample
2 | {
3 | public partial class NetworkCharts
4 | {
5 | public NetworkCharts()
6 | {
7 | DataContext = new NetworkChartsViewModel();
8 |
9 | InitializeComponent();
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Panels.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Panels.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace Metrolib.Sample
2 | {
3 | public partial class Panels
4 | {
5 | public Panels()
6 | {
7 | InitializeComponent();
8 |
9 | Items.ItemsSource = new[]
10 | {
11 | "Icon For Hire",
12 | "I Am Ghost",
13 | "Eyes Set To Kill"
14 | };
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/src/Metrolib.Sample/PieCharts.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace Metrolib.Sample
17 | {
18 | ///
19 | /// Interaction logic for PieCharts.xaml
20 | ///
21 | public partial class PieCharts : UserControl
22 | {
23 | public PieCharts()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/ProgressBars.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace Metrolib.Sample
17 | {
18 | ///
19 | /// Interaction logic for ProgressBars.xaml
20 | ///
21 | public partial class ProgressBars : UserControl
22 | {
23 | public ProgressBars()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Metrolib.Sample.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Resources/BlackWidow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/src/Metrolib.Sample/Resources/BlackWidow.png
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Resources/CaptainAmerica.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/src/Metrolib.Sample/Resources/CaptainAmerica.png
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Resources/Falcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/src/Metrolib.Sample/Resources/Falcon.png
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Resources/Hulk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/src/Metrolib.Sample/Resources/Hulk.png
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Resources/IronMan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/src/Metrolib.Sample/Resources/IronMan.png
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Resources/MariaHill.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/src/Metrolib.Sample/Resources/MariaHill.png
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Resources/NickFury.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/src/Metrolib.Sample/Resources/NickFury.png
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Resources/ScarletWitch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/src/Metrolib.Sample/Resources/ScarletWitch.png
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Resources/SharonCarter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/src/Metrolib.Sample/Resources/SharonCarter.png
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Resources/Thor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/src/Metrolib.Sample/Resources/Thor.png
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Resources/Vision.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/src/Metrolib.Sample/Resources/Vision.png
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Resources/WinterSoldier.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kittyfisto/Metrolib/356129430a833b6a28ea3c88f29574c48e6d04f1/src/Metrolib.Sample/Resources/WinterSoldier.png
--------------------------------------------------------------------------------
/src/Metrolib.Sample/Scrolling.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace Metrolib.Sample
17 | {
18 | ///
19 | /// Interaction logic for Scrolling.xaml
20 | ///
21 | public partial class Scrolling : UserControl
22 | {
23 | public Scrolling()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/TextBlocks.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace Metrolib.Sample
2 | {
3 | public partial class TextBlocks
4 | {
5 | public TextBlocks()
6 | {
7 | InitializeComponent();
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/TextBoxes.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Threading;
3 | using System.Windows.Threading;
4 |
5 | namespace Metrolib.Sample
6 | {
7 | public partial class TextBoxes
8 | {
9 | public SuggestionsViewModel SuggestionsViewModel { get; set; }
10 |
11 | public TextBoxes()
12 | {
13 | SuggestionsViewModel = new SuggestionsViewModel(new SerialTaskScheduler(),
14 | new UiDispatcher(Dispatcher.CurrentDispatcher));
15 |
16 | InitializeComponent();
17 |
18 | Dispatcher.BeginInvoke(new Action(() =>
19 | {
20 | Foobar.Focus();
21 | }));
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/src/Metrolib.Sample/TextEditor.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace Metrolib.Sample
17 | {
18 | ///
19 | /// Interaction logic for TextEditor.xaml
20 | ///
21 | public partial class TextEditor : UserControl
22 | {
23 | public TextEditor()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/ToggleButtons.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace Metrolib.Sample
2 | {
3 | public partial class ToggleButtons
4 | {
5 | public ToggleButtons()
6 | {
7 | InitializeComponent();
8 | DataContext = new ToggleButtonsViewModel();
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/Metrolib.Sample/ToggleButtonsViewModel.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.ComponentModel;
3 | using System.Runtime.CompilerServices;
4 |
5 | namespace Metrolib.Sample
6 | {
7 | public sealed class ToggleButtonsViewModel
8 | : INotifyPropertyChanged
9 | {
10 | private string _selectedItem;
11 |
12 | public ToggleButtonsViewModel()
13 | {
14 | SelectedItem = "A";
15 | }
16 |
17 | public IEnumerable Items => new[] {"A", "B", "C"};
18 |
19 | public string SelectedItem
20 | {
21 | get => _selectedItem;
22 | set
23 | {
24 | if (value == _selectedItem)
25 | return;
26 |
27 | _selectedItem = value;
28 | EmitPropertyChanged();
29 | }
30 | }
31 |
32 | public event PropertyChangedEventHandler PropertyChanged;
33 |
34 | private void EmitPropertyChanged([CallerMemberName] string propertyName = null)
35 | {
36 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
37 | }
38 | }
39 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/AbstractControlTest.cs:
--------------------------------------------------------------------------------
1 | using System.Threading;
2 | using System.Windows;
3 | using FluentAssertions;
4 | using NUnit.Framework;
5 |
6 | namespace Metrolib.Test
7 | {
8 | [TestFixture]
9 | [RequiresThread(ApartmentState.STA)]
10 | public abstract class AbstractControlTest
11 | {
12 | [Test]
13 | public void TestNamespace()
14 | {
15 | var control = Create();
16 | var type = control.GetType();
17 | type.Namespace.Should().Be("Metrolib.Controls", "because every control offered by this library should be part of the Metrolib.Controls namespace");
18 | }
19 |
20 | ///
21 | ///
22 | ///
23 | ///
24 | protected abstract FrameworkElement Create();
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/Metrolib.Test/App.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | namespace Metrolib.Test
4 | {
5 | internal sealed class App
6 | : Application
7 | {
8 | public static readonly App Instance;
9 |
10 | static App()
11 | {
12 | Instance = new App();
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Metrolib.Test/AssemblySetup.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 |
3 | namespace Metrolib.Test
4 | {
5 | [SetUpFixture]
6 | [Parallelizable(ParallelScope.Fixtures)]
7 | public sealed class AssemblySetup
8 | {
9 | }
10 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Charts/Line/LineChartCanvasTest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using FluentAssertions;
4 | using Metrolib.Controls.Charts.Line.Canvas;
5 | using Metrolib.Controls.Charts.Line.Canvas.Line;
6 | using NUnit.Framework;
7 |
8 | namespace Metrolib.Test.Charts.Line
9 | {
10 | [TestFixture]
11 | public sealed class LineChartCanvasTest
12 | : AbstractLineChartCanvasTest
13 | {
14 | protected override AbstractLineChartCanvas Create()
15 | {
16 | return new LineChartCanvas();
17 | }
18 |
19 | [Test]
20 | [STAThread]
21 | public void TestLineSeries1()
22 | {
23 | var canvas = Create();
24 |
25 | canvas.Series = new[] {new LineSeries {Values = new[] {new Point(1, 3), new Point(2, 4)}}};
26 |
27 | canvas.Update();
28 | canvas.XRange.Should().Be(new Range(1, 2));
29 | canvas.YRange.Should().Be(new Range(3, 4));
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Charts/Map/ItemsLayerTest.cs:
--------------------------------------------------------------------------------
1 | using System.Threading;
2 | using FluentAssertions;
3 | using NUnit.Framework;
4 |
5 | namespace Metrolib.Test.Charts.Map
6 | {
7 | [TestFixture]
8 | [RequiresThread(ApartmentState.STA)]
9 | public sealed class ItemsLayerTest
10 | {
11 | [Test]
12 | public void TestCtor()
13 | {
14 | var layer = new ItemsLayer();
15 | layer.ItemTemplate.Should().BeNull();
16 | layer.ItemTemplateSelector.Should().BeNull();
17 | layer.ItemsSource.Should().BeNull();
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Charts/Network/Algorithms/SolvingNodeLayoutAlgorithmTest.cs:
--------------------------------------------------------------------------------
1 | using FluentAssertions;
2 | using Moq;
3 | using NUnit.Framework;
4 |
5 | namespace Metrolib.Test.Charts.Network.Algorithms
6 | {
7 | [TestFixture]
8 | public sealed class SolvingNodeLayoutAlgorithmTest
9 | {
10 | private Mock _algorithm;
11 |
12 | [SetUp]
13 | public void Setup()
14 | {
15 | _algorithm = new Mock();
16 | }
17 |
18 | [Test]
19 | public void TestCtor()
20 | {
21 | var algorithm = new SolvingNodeLayoutAlgorithm(_algorithm.Object);
22 | var result = algorithm.Result;
23 | result.Should().NotBeNull();
24 | result.Should().BeEmpty();
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Charts/Network/NetworkViewNodeItemTest.cs:
--------------------------------------------------------------------------------
1 | using System.Threading;
2 | using FluentAssertions;
3 | using NUnit.Framework;
4 |
5 | namespace Metrolib.Test.Charts.Network
6 | {
7 | [TestFixture]
8 | [RequiresThread(ApartmentState.STA)]
9 | public sealed class NetworkViewNodeItemTest
10 | {
11 | private NetworkViewNodeItem _item;
12 |
13 | [SetUp]
14 | public void SetUp()
15 | {
16 | _item = new NetworkViewNodeItem();
17 | }
18 |
19 | [Test]
20 | public void TestCtor()
21 | {
22 | _item.Content.Should().BeNull();
23 | _item.IsSelected.Should().BeFalse();
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Charts/Pie/PieChartLabelItemTest.cs:
--------------------------------------------------------------------------------
1 | using System.Threading;
2 | using FluentAssertions;
3 | using NUnit.Framework;
4 |
5 | namespace Metrolib.Test.Charts.Pie
6 | {
7 | [TestFixture]
8 | [RequiresThread(ApartmentState.STA)]
9 | public sealed class PieChartLabelItemTest
10 | {
11 | [Test]
12 | public void TestCtor()
13 | {
14 | var item = new PieChartLabelItem();
15 | item.Content.Should().BeNull();
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Charts/Pie/PieChartValueItemTest.cs:
--------------------------------------------------------------------------------
1 | using System.Threading;
2 | using FluentAssertions;
3 | using NUnit.Framework;
4 |
5 | namespace Metrolib.Test.Charts.Pie
6 | {
7 | [TestFixture]
8 | [RequiresThread(ApartmentState.STA)]
9 | public sealed class PieChartValueItemTest
10 | {
11 | [Test]
12 | public void TestCtor()
13 | {
14 | var item = new PieChartValueItem();
15 | item.Content.Should().BeNull();
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Converters/AbstractNumberToStringConverterTest.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Data;
2 | using FluentAssertions;
3 | using NUnit.Framework;
4 |
5 | namespace Metrolib.Test.Converters
6 | {
7 | public abstract class AbstractNumberToStringConverterTest
8 | {
9 | protected abstract IValueConverter Converter { get; }
10 |
11 | [Test]
12 | public void TestConvert1()
13 | {
14 | Converter.Convert(null, null, null, null).Should().Be(null);
15 | Converter.Convert(42.12, null, null, null).Should().Be(null);
16 | }
17 |
18 | [Test]
19 | public void TestConvertBack2()
20 | {
21 | Converter.ConvertBack(null, null, null, null).Should().Be(null);
22 | Converter.ConvertBack(42.12, null, null, null).Should().Be(null);
23 | }
24 |
25 | }
26 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Converters/AbstractOneWayValueConverterTest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Data;
3 | using FluentAssertions;
4 | using NUnit.Framework;
5 |
6 | namespace Metrolib.Test.Converters
7 | {
8 | public abstract class AbstractOneWayValueConverterTest
9 | {
10 | public abstract Type SourceType { get; }
11 |
12 | protected abstract IValueConverter Converter { get; }
13 |
14 | protected abstract object SourceValue { get; }
15 | protected abstract object TargetValue { get; }
16 |
17 | [Test]
18 | public void TestConvertBack()
19 | {
20 | Converter.ConvertBack(TargetValue, SourceType, null, null)
21 | .Should().Be(Binding.DoNothing);
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Converters/ColorToBrushConverterTest.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Media;
2 | using FluentAssertions;
3 | using Metrolib.Converters;
4 | using NUnit.Framework;
5 |
6 | namespace Metrolib.Test.Converters
7 | {
8 | [TestFixture]
9 | public sealed class ColorToBrushConverterTest
10 | {
11 | [Test]
12 | public void TestConvert1()
13 | {
14 | var converter = new ColorToBrushConverter();
15 | var value = converter.Convert(Colors.Red, typeof(Brush), null, null);
16 | value.Should().NotBeNull();
17 | value.Should().BeOfType();
18 | var brush = (SolidColorBrush) value;
19 | brush.Color.Should().Be(Colors.Red);
20 | }
21 |
22 | [Test]
23 | public void TestConvert2()
24 | {
25 | var converter = new ColorToBrushConverter();
26 | converter.Convert(null, typeof(Brush), null, null).Should().BeNull();
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Converters/NonEmptyToCollapsedConverterTest.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Data;
3 | using FluentAssertions;
4 | using Metrolib.Converters;
5 | using NUnit.Framework;
6 |
7 | namespace Metrolib.Test.Converters
8 | {
9 | [TestFixture]
10 | public sealed class NonEmptyToCollapsedConverterTest
11 | {
12 | private NonEmptyToCollapsedConverter _converter;
13 |
14 | [OneTimeSetUp]
15 | public void OneTimeSetup()
16 | {
17 | _converter = new NonEmptyToCollapsedConverter();
18 | }
19 |
20 | [Test]
21 | public void TestConvert1()
22 | {
23 | _converter.Convert(null, null, null, null).Should().BeNull();
24 | }
25 |
26 | [Test]
27 | public void TestConvert2()
28 | {
29 | _converter.Convert(new object[0], null, null, null).Should().Be(Visibility.Visible);
30 | }
31 |
32 | [Test]
33 | public void TestConvert3()
34 | {
35 | _converter.Convert(new[] { 1 }, null, null, null).Should().Be(Visibility.Collapsed);
36 | }
37 |
38 | [Test]
39 | public void TestConvertBack()
40 | {
41 | _converter.ConvertBack(null, null, null, null).Should().Be(Binding.DoNothing);
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Converters/NonEmptyToHiddenConverterTest.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Data;
3 | using FluentAssertions;
4 | using Metrolib.Converters;
5 | using NUnit.Framework;
6 |
7 | namespace Metrolib.Test.Converters
8 | {
9 | [TestFixture]
10 | public sealed class NonEmptyToHiddenConverterTest
11 | {
12 | private NonEmptyToHiddenConverter _converter;
13 |
14 | [OneTimeSetUp]
15 | public void OneTimeSetup()
16 | {
17 | _converter = new NonEmptyToHiddenConverter();
18 | }
19 |
20 | [Test]
21 | public void TestConvert1()
22 | {
23 | _converter.Convert(null, null, null, null).Should().BeNull();
24 | }
25 |
26 | [Test]
27 | public void TestConvert2()
28 | {
29 | _converter.Convert(new object[0], null, null, null).Should().Be(Visibility.Visible);
30 | }
31 |
32 | [Test]
33 | public void TestConvert3()
34 | {
35 | _converter.Convert(new [] {1}, null, null, null).Should().Be(Visibility.Hidden);
36 | }
37 |
38 | [Test]
39 | public void TestConvertBack()
40 | {
41 | _converter.ConvertBack(null, null, null, null).Should().Be(Binding.DoNothing);
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Converters/NullToFalseConverterTest.cs:
--------------------------------------------------------------------------------
1 | using FluentAssertions;
2 | using Metrolib.Converters;
3 | using NUnit.Framework;
4 |
5 | namespace Metrolib.Test.Converters
6 | {
7 | [TestFixture]
8 | public sealed class NullToFalseConverterTest
9 | {
10 | [Test]
11 | public void TestConvert()
12 | {
13 | var converter = new NullToFalseConverter();
14 | converter.Convert(null, null, null, null).Should().Be(false);
15 | converter.Convert(true, null, null, null).Should().Be(true);
16 | converter.Convert(42, null, null, null).Should().Be(true);
17 | converter.Convert(false, null, null, null).Should().Be(true);
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Metrolib.Test/DelegateCommandTest.cs:
--------------------------------------------------------------------------------
1 | using FluentAssertions;
2 | using NUnit.Framework;
3 |
4 | namespace Metrolib.Test
5 | {
6 | [TestFixture]
7 | public sealed class DelegateCommandTest
8 | {
9 | [Test]
10 | public void TestCanExecute1()
11 | {
12 | var command = new DelegateCommand(value => { }, value =>
13 | {
14 | value.Should().BeNull();
15 | return true;
16 | });
17 |
18 | command.CanExecute(42).Should().BeTrue("Because the delegate shall be invoked even when the types don't match");
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Geometry/CircleTest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using FluentAssertions;
4 | using Metrolib.Geometry;
5 | using NUnit.Framework;
6 |
7 | namespace Metrolib.Test.Geometry
8 | {
9 | [TestFixture]
10 | public sealed class CircleTest
11 | {
12 | [Test]
13 | public void TestGetPoint1()
14 | {
15 | var circle = new Circle
16 | {
17 | Center = new Point(1, 2),
18 | Radius = 0
19 | };
20 | circle.GetPoint(0).Should().Be(circle.Center);
21 | }
22 |
23 | [Test]
24 | public void TestGetCircumference()
25 | {
26 | new Circle {Radius = 0}.Circumference.Should().Be(0);
27 | new Circle{Radius = 1}.Circumference.Should().Be(2*Math.PI);
28 | new Circle {Radius = 0.5}.Circumference.Should().Be(Math.PI);
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/Geometry/TriangleTest.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using FluentAssertions;
3 | using Metrolib.Geometry;
4 | using NUnit.Framework;
5 |
6 | namespace Metrolib.Test.Geometry
7 | {
8 | [TestFixture]
9 | public sealed class TriangleTest
10 | {
11 | [Test]
12 | public void TestContains1()
13 | {
14 | var triangle = new Triangle
15 | {
16 | P0 = new Point(0, 0),
17 | P1 = new Point(5, 0),
18 | P2 = new Point(0, 5)
19 | };
20 | triangle.Contains(triangle.P0).Should().BeTrue("because a triangle should contain its corners");
21 | triangle.Contains(triangle.P1).Should().BeTrue("because a triangle should contain its corners");
22 | triangle.Contains(triangle.P2).Should().BeTrue("because a triangle should contain its corners");
23 |
24 | triangle.Contains(new Point(1, 1)).Should().BeTrue();
25 |
26 | triangle.Contains(new Point(-0.1, 0)).Should().BeFalse();
27 | triangle.Contains(new Point(5.1, 0)).Should().BeFalse();
28 |
29 | triangle.Contains(new Point(0, -0.1)).Should().BeFalse();
30 | triangle.Contains(new Point(0, 5.1)).Should().BeFalse();
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/ItemsToggleButton/ItemsToggleButtonTest.cs:
--------------------------------------------------------------------------------
1 | using System.Threading;
2 | using FluentAssertions;
3 | using NUnit.Framework;
4 |
5 | namespace Metrolib.Test.ItemsToggleButton
6 | {
7 | [TestFixture]
8 | [RequiresThread(ApartmentState.STA)]
9 | public sealed class ItemsToggleButtonTest
10 | {
11 | [Test]
12 | public void SetNullItemsSource()
13 | {
14 | var control = new Controls.ItemsToggleButton();
15 | control.ItemsSource = new object[] {42};
16 | control.ItemsSource.Should().BeEquivalentTo(new object[]{42});
17 |
18 | control.ItemsSource = null;
19 | control.ItemsSource.Should().BeNull();
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Metrolib.Test/LocalTestAttribute.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 |
3 | namespace Metrolib.Test
4 | {
5 | public class LocalTest
6 | : CategoryAttribute
7 | {
8 | public LocalTest()
9 | : base("LocalTest")
10 | {
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/ProgressBar/CircularProgressBarTest.cs:
--------------------------------------------------------------------------------
1 | using Metrolib.Controls;
2 | using NUnit.Framework;
3 |
4 | namespace Metrolib.Test.ProgressBar
5 | {
6 | [TestFixture]
7 | public sealed class CircularProgressBarTest
8 | : AbstractProgressBarTest
9 | {
10 | protected override AbstractProgressBar CreateProgressBar()
11 | {
12 | return new CircularProgressBar();
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/ProgressBar/FlatProgressBarTest.cs:
--------------------------------------------------------------------------------
1 | using Metrolib.Controls;
2 | using NUnit.Framework;
3 |
4 | namespace Metrolib.Test.ProgressBar
5 | {
6 | [TestFixture]
7 | public sealed class FlatProgressBarTest
8 | : AbstractProgressBarTest
9 | {
10 | protected override AbstractProgressBar CreateProgressBar()
11 | {
12 | return new FlatProgressBar();
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/ScrollViewer/FlatScrollViewerTest.cs:
--------------------------------------------------------------------------------
1 | using System.Threading;
2 | using System.Windows.Controls;
3 | using FluentAssertions;
4 | using Metrolib.Controls;
5 | using NUnit.Framework;
6 |
7 | namespace Metrolib.Test.ScrollViewer
8 | {
9 | [LocalTest]
10 | [TestFixture]
11 | [RequiresThread(ApartmentState.STA)]
12 | public sealed class FlatScrollViewerTest
13 | {
14 | private FlatScrollViewer _scrollViewer;
15 |
16 | [SetUp]
17 | public void SetUp()
18 | {
19 | _scrollViewer = new FlatScrollViewer();
20 | }
21 |
22 | [Test]
23 | public void TestCtor()
24 | {
25 | _scrollViewer.MousePanningMode.Should().Be(PanningMode.None);
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/SearchTextBoxTest.cs:
--------------------------------------------------------------------------------
1 | using System.Threading;
2 | using FluentAssertions;
3 | using Metrolib.Controls;
4 | using NUnit.Framework;
5 |
6 | namespace Metrolib.Test
7 | {
8 | [TestFixture]
9 | [RequiresThread(ApartmentState.STA)]
10 | public sealed class SearchTextBoxTest
11 | {
12 | [Test]
13 | public void TestChangeText1()
14 | {
15 | var box = new SearchTextBox {RequiresExplicitSearchStart = false};
16 | box.IsPerformingSearch.Should().BeFalse("because we haven't entered any text");
17 | box.Text = "Foobar";
18 | box.IsPerformingSearch.Should()
19 | .BeTrue("because searches should start automatically when 'RequiresExplicitSearchStart' is set to false");
20 |
21 | box.Text = null;
22 | box.IsPerformingSearch.Should().BeFalse("because we've cleared the text again");
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/src/Metrolib.Test/StyleHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using FluentAssertions;
4 |
5 | namespace Metrolib.Test
6 | {
7 | public static class StyleHelper
8 | {
9 | public static Style Load()
10 | {
11 | var path = new Uri("/Metrolib;component/Themes/Generic.xaml", UriKind.RelativeOrAbsolute);
12 | var dictionary = new ResourceDictionary
13 | {
14 | Source = path
15 | };
16 | var style = dictionary[typeof (T)];
17 | style.Should().BeOfType
13 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/CloseButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable once CheckNamespace
4 | namespace Metrolib.Controls
5 | {
6 | ///
7 | /// A button which can be used to close something (for example a window).
8 | ///
9 | ///
10 | /// Displays a (rotated) cross.
11 | ///
12 | public class CloseButton
13 | : FlatIconButton
14 | {
15 | static CloseButton()
16 | {
17 | DefaultStyleKeyProperty.OverrideMetadata(typeof(CloseButton),
18 | new FrameworkPropertyMetadata(typeof(CloseButton)));
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/CloseButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
18 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/CollapseAllButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// A button that can be used to collapse all items in a tree.
9 | ///
10 | ///
11 | /// Displays a minus sign in a box.
12 | ///
13 | public class CollapseAllButton : FlatIconButton
14 | {
15 | static CollapseAllButton()
16 | {
17 | DefaultStyleKeyProperty.OverrideMetadata(typeof (CollapseAllButton), new FrameworkPropertyMetadata(typeof (CollapseAllButton)));
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/CollapseAllButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/DownloadButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable once CheckNamespace
4 | namespace Metrolib.Controls
5 | {
6 | ///
7 | /// A button which can be used to download something.
8 | ///
9 | ///
10 | /// Displays a downward arrow with a line beneath.
11 | ///
12 | public class DownloadButton
13 | : FlatIconButton
14 | {
15 | static DownloadButton()
16 | {
17 | DefaultStyleKeyProperty.OverrideMetadata(typeof(DownloadButton),
18 | new FrameworkPropertyMetadata(typeof(DownloadButton)));
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/DownloadButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/ExpandAllButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// A button that can be used to expand all items in a tree.
9 | ///
10 | ///
11 | /// Displays a plus sign in a box.
12 | ///
13 | public class ExpandAllButton : FlatIconButton
14 | {
15 | static ExpandAllButton()
16 | {
17 | DefaultStyleKeyProperty.OverrideMetadata(typeof (ExpandAllButton), new FrameworkPropertyMetadata(typeof (ExpandAllButton)));
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/ExpandAllButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/ExportButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// A simple button that allows for the export of data.
9 | ///
10 | ///
11 | /// Displays a file with an arrow to top right.
12 | ///
13 | public class ExportButton
14 | : FlatIconButton
15 | {
16 | static ExportButton()
17 | {
18 | DefaultStyleKeyProperty.OverrideMetadata(typeof (ExportButton),
19 | new FrameworkPropertyMetadata(typeof (ExportButton)));
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/ExportButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/FileAddButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// A simple button that allows for adding files.
9 | ///
10 | ///
11 | /// Displays a file with a plus.
12 | ///
13 | public class FileAddButton
14 | : FlatIconButton
15 | {
16 | static FileAddButton()
17 | {
18 | DefaultStyleKeyProperty.OverrideMetadata(typeof (FileAddButton),
19 | new FrameworkPropertyMetadata(typeof (FileAddButton)));
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/FileAddButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/FolderAddButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// A simple button that allows for adding folders.
9 | ///
10 | ///
11 | /// Displays a folder with a plus.
12 | ///
13 | public class FolderAddButton
14 | : FlatIconButton
15 | {
16 | static FolderAddButton()
17 | {
18 | DefaultStyleKeyProperty.OverrideMetadata(typeof (FolderAddButton),
19 | new FrameworkPropertyMetadata(typeof (FolderAddButton)));
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/FolderAddButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/FolderOpenButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable once CheckNamespace
4 | namespace Metrolib.Controls
5 | {
6 | ///
7 | /// A button that should spawn a folder open dialog or a new explorer folder.
8 | ///
9 | ///
10 | /// Displays an open folder.
11 | ///
12 | public class FolderOpenButton : FlatIconButton
13 | {
14 | static FolderOpenButton()
15 | {
16 | DefaultStyleKeyProperty.OverrideMetadata(typeof(FolderOpenButton),
17 | new FrameworkPropertyMetadata(typeof(FolderOpenButton)));
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/FolderOpenButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/ImportButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// A simple button that allows for the import of data.
9 | ///
10 | ///
11 | /// Displays a file with an arrow to bottom right.
12 | ///
13 | public class ImportButton
14 | : FlatIconButton
15 | {
16 | static ImportButton()
17 | {
18 | DefaultStyleKeyProperty.OverrideMetadata(typeof (ImportButton),
19 | new FrameworkPropertyMetadata(typeof (ImportButton)));
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/ImportButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/MinimizeButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// A button to minimize something, for example a window.
9 | ///
10 | public class MinimizeButton
11 | : FlatButton
12 | {
13 | static MinimizeButton()
14 | {
15 | DefaultStyleKeyProperty.OverrideMetadata(typeof(MinimizeButton), new FrameworkPropertyMetadata(typeof(MinimizeButton)));
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/NextButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 |
5 | namespace Metrolib.Controls
6 | // ReSharper restore CheckNamespace
7 | {
8 | ///
9 | /// A button used to jump to the next something, for example
10 | /// the next occurrence of a search term in a document.
11 | ///
12 | ///
13 | /// Displays a downwards arrow.
14 | ///
15 | public class NextButton
16 | : FlatIconButton
17 | {
18 | static NextButton()
19 | {
20 | DefaultStyleKeyProperty.OverrideMetadata(typeof (NextButton), new FrameworkPropertyMetadata(typeof (NextButton)));
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/NextButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/PreviousButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 |
5 | namespace Metrolib.Controls
6 | // ReSharper restore CheckNamespace
7 | {
8 | ///
9 | /// A button used to jump to the previous something, for example
10 | /// the previous occurrence of a search term in a document.
11 | ///
12 | ///
13 | /// Displays an upwards arrow.
14 | ///
15 | public class PreviousButton
16 | : FlatIconButton
17 | {
18 | static PreviousButton()
19 | {
20 | DefaultStyleKeyProperty.OverrideMetadata(typeof (PreviousButton),
21 | new FrameworkPropertyMetadata(typeof (PreviousButton)));
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/PreviousButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/RemoveButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 |
5 | namespace Metrolib.Controls
6 | // ReSharper restore CheckNamespace
7 | {
8 | ///
9 | /// A button used to remove something, for example an item in a list.
10 | ///
11 | ///
12 | /// Displays a minus sign.
13 | ///
14 | public class RemoveButton : FlatIconButton
15 | {
16 | static RemoveButton()
17 | {
18 | DefaultStyleKeyProperty.OverrideMetadata(typeof (RemoveButton), new FrameworkPropertyMetadata(typeof (RemoveButton)));
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/RemoveButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
17 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/SearchButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 |
5 | namespace Metrolib.Controls
6 | // ReSharper restore CheckNamespace
7 | {
8 | ///
9 | /// A button to initiate a search.
10 | ///
11 | ///
12 | /// Displays a magnifying glass.
13 | ///
14 | public class SearchButton
15 | : FlatIconButton
16 | {
17 | static SearchButton()
18 | {
19 | DefaultStyleKeyProperty.OverrideMetadata(typeof (SearchButton), new FrameworkPropertyMetadata(typeof (SearchButton)));
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/SearchButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
12 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/TrashButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// A button that can be used to delete things (files, items to a list, etc...).
9 | ///
10 | ///
11 | /// Displays a trashcan.
12 | ///
13 | public class TrashButton : FlatIconButton
14 | {
15 | static TrashButton()
16 | {
17 | DefaultStyleKeyProperty.OverrideMetadata(typeof (TrashButton), new FrameworkPropertyMetadata(typeof (TrashButton)));
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/TrashButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
15 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/UndoButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable once CheckNamespace
4 | namespace Metrolib.Controls
5 | {
6 | ///
7 | /// A button to undo something, for example a textbox change.
8 | ///
9 | ///
10 | /// Displays an curved arrow to the left.
11 | ///
12 | public class UndoButton
13 | : FlatIconButton
14 | {
15 | static UndoButton()
16 | {
17 | DefaultStyleKeyProperty.OverrideMetadata(typeof(UndoButton),
18 | new FrameworkPropertyMetadata(typeof(UndoButton)));
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/UndoButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
12 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/UploadButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable once CheckNamespace
4 | namespace Metrolib.Controls
5 | {
6 | ///
7 | /// A button which can be used to upload something.
8 | ///
9 | ///
10 | /// Displays an upward arrow with a line beneath.
11 | ///
12 | public class UploadButton
13 | : FlatIconButton
14 | {
15 | static UploadButton()
16 | {
17 | DefaultStyleKeyProperty.OverrideMetadata(typeof(UploadButton),
18 | new FrameworkPropertyMetadata(typeof(UploadButton)));
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Buttons/UploadButton.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Histogram/DateTimeHistogram.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 |
4 | // ReSharper disable CheckNamespace
5 | namespace Metrolib
6 | // ReSharper restore CheckNamespace
7 | {
8 | ///
9 | /// A chart displaying the density of a certain value over time.
10 | ///
11 | public class DateTimeHistogram
12 | : Control
13 | {
14 | static DateTimeHistogram()
15 | {
16 | DefaultStyleKeyProperty.OverrideMetadata(typeof(DateTimeHistogram), new FrameworkPropertyMetadata(typeof(DateTimeHistogram)));
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Histogram/DateTimeHistogram.xaml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
8 |
9 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Line/Canvas/Line/LineChartCanvas.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | namespace Metrolib.Controls.Charts.Line.Canvas.Line
4 | {
5 | ///
6 | /// Is responsible for actually drawing points as a line.
7 | ///
8 | public sealed class LineChartCanvas
9 | : AbstractLineChartCanvas
10 | {
11 | static LineChartCanvas()
12 | {
13 | DefaultStyleKeyProperty.OverrideMetadata(typeof (LineChartCanvas),
14 | new FrameworkPropertyMetadata(typeof (LineChartCanvas)));
15 | }
16 |
17 | ///
18 | /// Creates a canvas responsible for drawing the given series only.
19 | ///
20 | ///
21 | ///
22 | protected override AbstractLineSeriesCanvas CreateCanvas(ILineSeries series)
23 | {
24 | return new LineSeriesCanvas(series);
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Line/Canvas/Stacked/StackedLineChartCanvas.cs:
--------------------------------------------------------------------------------
1 | namespace Metrolib.Controls.Charts.Line.Canvas.Stacked
2 | {
3 | ///
4 | ///
5 | ///
6 | public sealed class StackedLineChartCanvas
7 | : AbstractLineChartCanvas
8 | {
9 | ///
10 | /// Is called to prepare the canvas for rendering.
11 | ///
12 | public override void Update()
13 | {
14 | StackedLineSeriesCanvas previous = null;
15 | foreach (StackedLineSeriesCanvas canvas in SeriesCanvasses)
16 | {
17 | canvas.Previous = previous;
18 | canvas.StackWithPrevious();
19 | previous = canvas;
20 | }
21 |
22 | base.Update();
23 | }
24 |
25 | ///
26 | /// Creates a canvas responsible for drawing the given series only.
27 | ///
28 | ///
29 | ///
30 | protected override AbstractLineSeriesCanvas CreateCanvas(ILineSeries series)
31 | {
32 | return new StackedLineSeriesCanvas(series);
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Line/LineChartType.cs:
--------------------------------------------------------------------------------
1 | // ReSharper disable CheckNamespace
2 |
3 | namespace Metrolib
4 | // ReSharper restore CheckNamespace
5 | {
6 | ///
7 | /// Lists various "types" one or more can be displayed.
8 | ///
9 | public enum LineChartType
10 | {
11 | ///
12 | /// One line per .
13 | /// The area under the line may be filled out, but a translucient fill brush is
14 | /// recommended in case more than one series is displayed.
15 | ///
16 | Normal,
17 |
18 | ///
19 | /// One line per , however each series sits on top of
20 | /// the previous one. When this is used, should
21 | /// be set to the user understands this fact.
22 | ///
23 | Stacked,
24 | }
25 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Map/CameraChangedEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib
5 | // ReSharper restore CheckNamespace
6 | {
7 | public sealed class CameraChangedEventArgs
8 | : EventArgs
9 | {
10 |
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Map/ITileCache.cs:
--------------------------------------------------------------------------------
1 | using System.Threading.Tasks;
2 | using System.Windows.Media;
3 |
4 | // ReSharper disable once CheckNamespace
5 | namespace Metrolib.Controls
6 | {
7 | ///
8 | /// Responsible for retrieving the actual images for a specific tile.
9 | ///
10 | public interface ITileCache
11 | {
12 | ///
13 | ///
14 | ///
15 | ///
16 | Task GetTileAsync(Tile tile);
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Map/MapCanvas.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Windows.Controls;
3 |
4 | // ReSharper disable CheckNamespace
5 |
6 | namespace Metrolib
7 | // ReSharper restore CheckNamespace
8 | {
9 | ///
10 | /// The canvas that actually presents all layers of a .
11 | ///
12 | public class MapCanvas
13 | : Grid
14 | {
15 |
16 | }
17 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Map/MapView.xaml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
20 |
21 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Map/MapViewItem.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 |
4 | // ReSharper disable CheckNamespace
5 |
6 | namespace Metrolib
7 | // ReSharper restore CheckNamespace
8 | {
9 | ///
10 | /// Control representing an item in the map.
11 | ///
12 | public abstract class MapViewItem
13 | : ContentControl
14 | {
15 | ///
16 | /// Definition of the dependency property.
17 | ///
18 | public static readonly DependencyProperty IsSelectedProperty =
19 | DependencyProperty.Register("IsSelected", typeof (bool), typeof (MapViewItem), new PropertyMetadata(default(bool)));
20 |
21 | ///
22 | /// Whether or not this item is selected.
23 | ///
24 | public bool IsSelected
25 | {
26 | get { return (bool) GetValue(IsSelectedProperty); }
27 | set { SetValue(IsSelectedProperty, value); }
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Map/MapViewPointItem.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 |
5 | namespace Metrolib
6 | // ReSharper restore CheckNamespace
7 | {
8 | ///
9 | /// Control representing a point on the map as a push pin.
10 | ///
11 | public class MapViewPointItem
12 | : MapViewItem
13 | {
14 | static MapViewPointItem()
15 | {
16 | DefaultStyleKeyProperty.OverrideMetadata(typeof (MapViewPointItem),
17 | new FrameworkPropertyMetadata(typeof (MapViewPointItem)));
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Network/Direction.cs:
--------------------------------------------------------------------------------
1 | // ReSharper disable CheckNamespace
2 | namespace Metrolib
3 | // ReSharper restore CheckNamespace
4 | {
5 | ///
6 | /// The direction of an edge.
7 | ///
8 | public enum EdgeDirection
9 | {
10 | ///
11 | /// The edge is not directed, i.e. is drawn without an arrow.
12 | ///
13 | Undirected,
14 |
15 | ///
16 | /// The edge is directed and points from TO .
17 | /// Visually, this is represented by an arrow.
18 | ///
19 | Node1ToNode2,
20 |
21 | ///
22 | /// The edge is directed and points from TO .
23 | /// Visually, this is represented by an arrow.
24 | ///
25 | Node2ToNode1,
26 | }
27 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Network/Edge.cs:
--------------------------------------------------------------------------------
1 | // ReSharper disable CheckNamespace
2 |
3 | namespace Metrolib
4 | // ReSharper restore CheckNamespace
5 | {
6 | ///
7 | /// Untyped edge between two nodes of type in a graph.
8 | ///
9 | public sealed class Edge
10 | : IEdge
11 | {
12 | ///
13 | /// The direction the edge points in, if any.
14 | ///
15 | public EdgeDirection Direction { get; set; }
16 |
17 | ///
18 | /// The first node of this edge.
19 | ///
20 | public INode Node1 { get; set; }
21 |
22 | ///
23 | /// The second node of this edge.
24 | ///
25 | public INode Node2 { get; set; }
26 |
27 | ///
28 | /// Creates a new edge between the two given nodes.
29 | ///
30 | ///
31 | ///
32 | ///
33 | public static Edge Create(INode node1, INode node2)
34 | {
35 | return new Edge {Node1 = node1, Node2 = node2};
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Network/IEdge.cs:
--------------------------------------------------------------------------------
1 | // ReSharper disable CheckNamespace
2 | namespace Metrolib
3 | // ReSharper restore CheckNamespace
4 | {
5 | ///
6 | /// Represents an edge in a 2-d graph.
7 | ///
8 | public interface IEdge
9 | {
10 | ///
11 | /// The direction the edge points in, if any.
12 | ///
13 | EdgeDirection Direction { get; }
14 |
15 | ///
16 | /// The first node of this edge.
17 | ///
18 | INode Node1 { get; }
19 |
20 | ///
21 | /// The second node of this edge.
22 | ///
23 | INode Node2 { get; }
24 | }
25 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Network/INode.cs:
--------------------------------------------------------------------------------
1 | // ReSharper disable CheckNamespace
2 |
3 | namespace Metrolib
4 | // ReSharper restore CheckNamespace
5 | {
6 | ///
7 | /// Represents a node in a 2-d graph.
8 | ///
9 | public interface INode
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Network/NetworkView.xaml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
9 |
10 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Network/WidthHeightToRadiusConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Data;
5 |
6 | namespace Metrolib.Controls.Charts.Network
7 | {
8 | internal sealed class WidthHeightToRadiusConverter
9 | : IMultiValueConverter
10 | {
11 | public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
12 | {
13 | var width = (double)values[0];
14 | var height = (double) values[1];
15 | var edge = Math.Max(width, height);
16 | var diameter = Math.Sqrt(edge * edge + edge * edge);
17 | var radius = diameter/2;
18 | return new CornerRadius(radius);
19 | }
20 |
21 | public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
22 | {
23 | throw new NotImplementedException();
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Network/WidthHeightToSizeConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Data;
4 |
5 | namespace Metrolib.Controls.Charts.Network
6 | {
7 | internal sealed class WidthHeightToSizeConverter
8 | : IMultiValueConverter
9 | {
10 | public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
11 | {
12 | var width = (double)values[0];
13 | var height = (double)values[1];
14 | var edge = Math.Max(width, height);
15 | var diameter = Math.Sqrt(edge * edge + edge * edge);
16 | return diameter;
17 | }
18 |
19 | public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
20 | {
21 | throw new NotImplementedException();
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Pie/IPieSeries.cs:
--------------------------------------------------------------------------------
1 | // ReSharper disable CheckNamespace
2 |
3 | using System.Collections.Generic;
4 |
5 | namespace Metrolib
6 | // ReSharper restore CheckNamespace
7 | {
8 | ///
9 | ///
10 | ///
11 | public interface IPieSeries
12 | {
13 | ///
14 | ///
15 | ///
16 | IEnumerable Slices { get; }
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Pie/PieChartLabelItem.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 |
3 | // ReSharper disable CheckNamespace
4 |
5 | namespace Metrolib
6 | // ReSharper restore CheckNamespace
7 | {
8 | ///
9 | /// Responsible for presenting the property.
10 | ///
11 | public class PieChartLabelItem
12 | : ContentPresenter
13 | {
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Pie/PieChartValueItem.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// Responsible for presenting the inside
9 | /// the circle segment allocated to that slice.
10 | ///
11 | public sealed class PieChartValueItem
12 | : ContentPresenter
13 | {
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Charts/Pie/SliceDirection.cs:
--------------------------------------------------------------------------------
1 | // ReSharper disable CheckNamespace
2 |
3 | namespace Metrolib
4 | // ReSharper restore CheckNamespace
5 | {
6 | ///
7 | /// Describes the direction a is pointing at.
8 | ///
9 | public enum SliceDirection
10 | {
11 | ///
12 | /// The slice is facing in the top right corner of the chart.
13 | ///
14 | TopRight,
15 |
16 | ///
17 | /// The slice is facing in the bottom right corner of the chart.
18 | ///
19 | BottomRight,
20 |
21 | ///
22 | /// The slice is facing in the bottom left corner of the chart.
23 | ///
24 | BottomLeft,
25 |
26 | ///
27 | /// The slice is facing in the top left corner of the chart.
28 | ///
29 | TopLeft,
30 | }
31 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/ContextMenu/MenuItemContentControl.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 |
4 | // ReSharper disable CheckNamespace
5 | namespace Metrolib.Controls
6 | // ReSharper restore CheckNamespace
7 | {
8 | ///
9 | ///
10 | ///
11 | public class MenuItemContentControl
12 | : ContentControl
13 | {
14 | static MenuItemContentControl()
15 | {
16 | DefaultStyleKeyProperty.OverrideMetadata(typeof (MenuItemContentControl),
17 | new FrameworkPropertyMetadata(typeof (MenuItemContentControl)));
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/FlatSeparator.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 |
4 | namespace Metrolib.Controls
5 | {
6 | ///
7 | ///
8 | public class FlatSeparator
9 | : Separator
10 | {
11 | ///
12 | /// Definition of the dependency property.
13 | ///
14 | public static readonly DependencyProperty OrientationProperty = DependencyProperty.Register(
15 | "Orientation", typeof(Orientation), typeof(FlatSeparator), new PropertyMetadata(Orientation.Horizontal));
16 |
17 | ///
18 | /// The visual orientation of this separator.
19 | ///
20 | public Orientation Orientation
21 | {
22 | get { return (Orientation) GetValue(OrientationProperty); }
23 | set { SetValue(OrientationProperty, value); }
24 | }
25 |
26 | static FlatSeparator()
27 | {
28 | DefaultStyleKeyProperty.OverrideMetadata(typeof(FlatSeparator), new FrameworkPropertyMetadata(typeof(FlatSeparator)));
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/GroupBox/FlatGroupBox.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 |
4 | // ReSharper disable CheckNamespace
5 | namespace Metrolib.Controls
6 | // ReSharper restore CheckNamespace
7 | {
8 | ///
9 | /// A group box in a flat style:
10 | /// - No border
11 | /// - Header has increased font size
12 | ///
13 | public class FlatGroupBox
14 | : GroupBox
15 | {
16 | static FlatGroupBox()
17 | {
18 | DefaultStyleKeyProperty.OverrideMetadata(typeof(FlatGroupBox), new FrameworkPropertyMetadata(typeof(FlatGroupBox)));
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/List/FlatListViewItem.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 |
4 | namespace Metrolib.Controls.List
5 | {
6 | ///
7 | /// A "flat" list view item.
8 | ///
9 | public sealed class FlatListViewItem
10 | : ListViewItem
11 | {
12 | static FlatListViewItem()
13 | {
14 | DefaultStyleKeyProperty.OverrideMetadata(typeof (FlatListViewItem),
15 | new FrameworkPropertyMetadata(typeof (FlatListViewItem)));
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/NotificationBadge.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 |
4 | namespace Metrolib.Controls
5 | {
6 | ///
7 | /// TBD
8 | ///
9 | public class NotificationBadge : ContentControl
10 | {
11 | static NotificationBadge()
12 | {
13 | DefaultStyleKeyProperty.OverrideMetadata(typeof (NotificationBadge),
14 | new FrameworkPropertyMetadata(typeof (NotificationBadge)));
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Tab/FlatTabControl.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 |
4 | namespace Metrolib.Controls.Tab
5 | {
6 | ///
7 | /// A "flat" tab control.
8 | ///
9 | public class FlatTabControl
10 | : TabControl
11 | {
12 | static FlatTabControl()
13 | {
14 | DefaultStyleKeyProperty.OverrideMetadata(typeof (FlatTabControl),
15 | new FrameworkPropertyMetadata(typeof (FlatTabControl)));
16 | }
17 |
18 | ///
19 | /// Creates and returns a new Metrolib.Controls.FlatTabItem container.
20 | ///
21 | ///
22 | protected override DependencyObject GetContainerForItemOverride()
23 | {
24 | return new FlatTabItem();
25 | }
26 |
27 | ///
28 | /// Determines whether an object is a Metrolib.Controls.FlatTabItem.
29 | ///
30 | ///
31 | ///
32 | protected override bool IsItemItsOwnContainerOverride(object item)
33 | {
34 | return item is FlatTabItem;
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Tab/FlatTabItem.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 |
4 | // ReSharper disable CheckNamespace
5 |
6 | namespace Metrolib.Controls
7 | // ReSharper restore CheckNamespace
8 | {
9 | ///
10 | /// A "flat" tab item.
11 | ///
12 | public class FlatTabItem
13 | : TabItem
14 | {
15 | static FlatTabItem()
16 | {
17 | DefaultStyleKeyProperty.OverrideMetadata(typeof (FlatTabItem), new FrameworkPropertyMetadata(typeof (FlatTabItem)));
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/TextBlocks/MarkdownPresenter.xaml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
18 |
19 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/TextBlocks/MarkdownTokenType.cs:
--------------------------------------------------------------------------------
1 | namespace Metrolib.Controls.TextBlocks
2 | {
3 | ///
4 | ///
5 | ///
6 | public enum MarkdownTokenType : byte
7 | {
8 | None = 0,
9 |
10 | Star,
11 | Underscore,
12 | LineBreak,
13 | Whitespace,
14 | Tilde,
15 |
16 | SquareBracketOpen,
17 | SquareBracketClose,
18 |
19 | BracketOpen,
20 | BracketClose,
21 |
22 | Text = 255
23 | }
24 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/ToggleButtons/AlarmToggleButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespaces
6 | {
7 | ///
8 | /// A toggle button that allows an alarm to be on or off.
9 | ///
10 | public class AlarmToggleButton
11 | : ToggleButtonBase
12 | {
13 | static AlarmToggleButton()
14 | {
15 | DefaultStyleKeyProperty.OverrideMetadata(typeof(AlarmToggleButton),
16 | new FrameworkPropertyMetadata(typeof(AlarmToggleButton)));
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/ToggleButtons/EditToggleButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// A toggle button that allows to toggle between editing and not-.
9 | ///
10 | public class EditToggleButton : FlatToggleButton
11 | {
12 | static EditToggleButton()
13 | {
14 | DefaultStyleKeyProperty.OverrideMetadata(typeof (EditToggleButton),
15 | new FrameworkPropertyMetadata(typeof (EditToggleButton)));
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/ToggleButtons/EmailToggleButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 |
5 | namespace Metrolib.Controls
6 | // ReSharper restore CheckNamespace
7 | {
8 | ///
9 | /// A toggle button with a letter icon.
10 | /// The icon displays an opened letter when toggled.
11 | ///
12 | public class EmailToggleButton
13 | : FlatToggleButton
14 | {
15 | static EmailToggleButton()
16 | {
17 | DefaultStyleKeyProperty.OverrideMetadata(typeof (EmailToggleButton),
18 | new FrameworkPropertyMetadata(typeof (EmailToggleButton)));
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/ToggleButtons/FlatToggleButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// An extended toggle button that offers an IsInverted property to control how the content shall be displayed.
9 | ///
10 | public class FlatToggleButton
11 | : ToggleButtonBase
12 | {
13 | static FlatToggleButton()
14 | {
15 | DefaultStyleKeyProperty.OverrideMetadata(typeof(FlatToggleButton),
16 | new FrameworkPropertyMetadata(typeof(FlatToggleButton)));
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/ToggleButtons/PluginToggleButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// A toggle button with a plugin icon.
9 | /// The icon displays four puzzle pieces.
10 | ///
11 | public class PluginToggleButton
12 | : FlatToggleButton
13 | {
14 | static PluginToggleButton()
15 | {
16 | DefaultStyleKeyProperty.OverrideMetadata(typeof (PluginToggleButton),
17 | new FrameworkPropertyMetadata(typeof (PluginToggleButton)));
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Metrolib/Controls/ToggleButtons/SwitchToggleButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespaces
6 | {
7 | ///
8 | /// A toggle button in the / style.
9 | ///
10 | public class SwitchToggleButton
11 | : ToggleButtonBase
12 | {
13 | static SwitchToggleButton()
14 | {
15 | DefaultStyleKeyProperty.OverrideMetadata(typeof(SwitchToggleButton),
16 | new FrameworkPropertyMetadata(typeof(SwitchToggleButton)));
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/ToggleButtons/ViewDashboardToggleButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// A button to represent an ordered layout.
9 | ///
10 | public class ViewDashboardToggleButton
11 | : FlatToggleButton
12 | {
13 | static ViewDashboardToggleButton()
14 | {
15 | DefaultStyleKeyProperty.OverrideMetadata(typeof(ViewDashboardToggleButton),
16 | new FrameworkPropertyMetadata(typeof(ViewDashboardToggleButton)));
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/ToggleButtons/ViewQuiltToggleButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// A button to represent an unorderly layout.
9 | ///
10 | public class ViewQuiltToggleButton
11 | : FlatToggleButton
12 | {
13 | static ViewQuiltToggleButton()
14 | {
15 | DefaultStyleKeyProperty.OverrideMetadata(typeof(ViewQuiltToggleButton),
16 | new FrameworkPropertyMetadata(typeof(ViewQuiltToggleButton)));
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/ToggleButtons/VisibilityToggleButton.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable CheckNamespace
4 | namespace Metrolib.Controls
5 | // ReSharper restore CheckNamespace
6 | {
7 | ///
8 | /// A toggle button that allows the user to control whether a filter is being used to include or exclude items.
9 | ///
10 | public class VisibilityToggleButton
11 | : FlatToggleButton
12 | {
13 | static VisibilityToggleButton()
14 | {
15 | DefaultStyleKeyProperty.OverrideMetadata(typeof (VisibilityToggleButton),
16 | new FrameworkPropertyMetadata(typeof (VisibilityToggleButton)));
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Tree/ITreeViewItemViewModel.cs:
--------------------------------------------------------------------------------
1 | // ReSharper disable CheckNamespace
2 |
3 | using System.ComponentModel;
4 |
5 | namespace Metrolib.Controls
6 | // ReSharper restore CheckNamespace
7 | {
8 | ///
9 | /// An optional view model that may be implemented by a view model that is being displayed
10 | /// in a . The view model is notified about whether or not
11 | /// its hosting is selected and/or expanded.
12 | ///
13 | public interface ITreeViewItemViewModel
14 | : INotifyPropertyChanged
15 | {
16 | ///
17 | ///
18 | ///
19 | bool IsSelected { get; set; }
20 |
21 | ///
22 | ///
23 | ///
24 | bool IsExpanded { get; set; }
25 | }
26 | }
--------------------------------------------------------------------------------
/src/Metrolib/Controls/Tree/LeftMarginMultiplierConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Data;
5 |
6 | // ReSharper disable CheckNamespace
7 | namespace Metrolib.Controls
8 | // ReSharper restore CheckNamespace
9 | {
10 | internal sealed class LeftMarginMultiplierConverter
11 | : IValueConverter
12 | {
13 | public double Multiplier { get; set; }
14 |
15 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
16 | {
17 | var item = value as FlatTreeViewItem;
18 | if (item == null)
19 | return null;
20 |
21 | int depth = item.Depth;
22 | double margin = depth*Multiplier;
23 | return new Thickness(margin, 0, 0, 0);
24 | }
25 |
26 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
27 | {
28 | throw new NotImplementedException();
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/BoolFalseToCollapsedConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Data;
5 |
6 | // ReSharper disable CheckNamespace
7 |
8 | namespace Metrolib.Converters
9 | // ReSharper restore CheckNamespace
10 | {
11 | ///
12 | /// Converts false to , true to
13 | /// and anything else to null.
14 | ///
15 | public sealed class BoolFalseToCollapsedConverter
16 | : IValueConverter
17 | {
18 | ///
19 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
20 | {
21 | if (targetType != typeof (Visibility))
22 | return null;
23 |
24 | if (!(value is bool))
25 | return null;
26 |
27 | var val = (bool) value;
28 | if (!val)
29 | {
30 | return Visibility.Collapsed;
31 | }
32 |
33 | return Visibility.Visible;
34 | }
35 |
36 | ///
37 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
38 | {
39 | return Binding.DoNothing;
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/BoolFalseToHiddenConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Data;
5 |
6 | // ReSharper disable CheckNamespace
7 |
8 | namespace Metrolib.Converters
9 | // ReSharper restore CheckNamespace
10 | {
11 | ///
12 | /// Converts false to , true to and anything else
13 | /// to null.
14 | ///
15 | public sealed class BoolFalseToHiddenConverter
16 | : IValueConverter
17 | {
18 | ///
19 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
20 | {
21 | if (targetType != typeof (Visibility))
22 | return null;
23 |
24 | if (!(value is bool))
25 | return null;
26 |
27 | var val = (bool) value;
28 | if (!val)
29 | {
30 | return Visibility.Hidden;
31 | }
32 |
33 | return Visibility.Visible;
34 | }
35 |
36 | ///
37 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
38 | {
39 | return Binding.DoNothing;
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/BoolTrueToCollapsedConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Data;
5 |
6 | // ReSharper disable CheckNamespace
7 |
8 | namespace Metrolib.Converters
9 | // ReSharper restore CheckNamespace
10 | {
11 | ///
12 | /// Converts true to , false to
13 | /// and anything else to null.
14 | ///
15 | public sealed class BoolTrueToCollapsedConverter
16 | : IValueConverter
17 | {
18 | ///
19 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
20 | {
21 | if (targetType != typeof (Visibility))
22 | return null;
23 |
24 | if (!(value is bool))
25 | return null;
26 |
27 | var val = (bool) value;
28 | if (val)
29 | {
30 | return Visibility.Collapsed;
31 | }
32 |
33 | return Visibility.Visible;
34 | }
35 |
36 | ///
37 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
38 | {
39 | return Binding.DoNothing;
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/BoolTrueToHiddenConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Data;
5 |
6 | namespace Metrolib.Converters
7 | {
8 | ///
9 | /// Converts true to , false to and anything else
10 | /// to null.
11 | ///
12 | public sealed class BoolTrueToHiddenConverter
13 | : IValueConverter
14 | {
15 | ///
16 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
17 | {
18 | if (targetType != typeof(Visibility))
19 | return null;
20 |
21 | if (!(value is bool))
22 | return null;
23 |
24 | var val = (bool)value;
25 | if (val)
26 | {
27 | return Visibility.Hidden;
28 | }
29 |
30 | return Visibility.Visible;
31 | }
32 |
33 | ///
34 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
35 | {
36 | return Binding.DoNothing;
37 | }
38 | }
39 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/ColorToBrushConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Data;
4 | using System.Windows.Media;
5 |
6 | namespace Metrolib.Converters
7 | {
8 | ///
9 | /// Converts values to .
10 | ///
11 | public sealed class ColorToBrushConverter
12 | : IValueConverter
13 | {
14 | ///
15 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
16 | {
17 | if (!(value is Color))
18 | return null;
19 |
20 | var color = (Color) value;
21 | var brush = new SolidColorBrush(color);
22 | brush.Freeze();
23 | return brush;
24 | }
25 |
26 | ///
27 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
28 | {
29 | throw new NotImplementedException();
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/Converters.xaml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/Metrolib/Converters/DoubleToPercentageConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Data;
4 |
5 | namespace Metrolib.Converters
6 | {
7 | ///
8 | /// Converts a relative double value to a string in the form of X%.
9 | /// 0 yields 0%
10 | /// 1 yields 100%
11 | /// 0.5 yields 50%
12 | /// 0.55 yields 55%
13 | /// 0.555 yields 56%
14 | ///
15 | ///
16 | /// Does not display any digits after the decimal point.
17 | ///
18 | public sealed class DoubleToPercentageConverter
19 | : IValueConverter
20 | {
21 | ///
22 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
23 | {
24 | if (!(value is double))
25 | return null;
26 |
27 | var relativeValue = (double) value;
28 | var formatted = string.Format(culture, "{0:P0}", relativeValue);
29 | return formatted;
30 | }
31 |
32 | ///
33 | object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
34 | {
35 | return Binding.DoNothing;
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/DoubleToThicknessConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Data;
5 |
6 | namespace Metrolib.Converters
7 | {
8 | ///
9 | /// Converts a value to a .
10 | ///
11 | public sealed class DoubleToThicknessConverter
12 | : IValueConverter
13 | {
14 | ///
15 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
16 | {
17 | if (!(value is double))
18 | return null;
19 |
20 | var v = (double) value;
21 | return new Thickness(v, v, v, v);
22 | }
23 |
24 | ///
25 | object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
26 | {
27 | return Binding.DoNothing;
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/EmptyToHiddenConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections;
3 | using System.Globalization;
4 | using System.Windows;
5 | using System.Windows.Data;
6 |
7 | namespace Metrolib.Converters
8 | {
9 | ///
10 | /// Converts any that contains at least one value
11 | /// to . If it is empty, then
12 | /// is returned. Anything else yields null.
13 | ///
14 | public sealed class EmptyToHiddenConverter
15 | : IValueConverter
16 | {
17 | ///
18 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
19 | {
20 | var actualValue = value as IEnumerable;
21 | if (actualValue == null)
22 | return null;
23 |
24 | var it = actualValue.GetEnumerator();
25 | return it.MoveNext()
26 | ? Visibility.Visible
27 | : Visibility.Collapsed;
28 | }
29 |
30 | ///
31 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
32 | {
33 | return Binding.DoNothing;
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/IncrementByOneConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Data;
4 |
5 | namespace Metrolib.Converters
6 | {
7 | ///
8 | /// Increments the given value by 1.
9 | ///
10 | public sealed class IncrementByOneConverter
11 | : IValueConverter
12 | {
13 | ///
14 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
15 | {
16 | if (!(value is int))
17 | return null;
18 |
19 | var actualValue = (int) value;
20 | return actualValue + 1;
21 | }
22 |
23 | ///
24 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
25 | {
26 | return null;
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/InvertBoolConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Data;
4 |
5 | namespace Metrolib.Converters
6 | {
7 | ///
8 | /// Inverts the given boolean value.
9 | /// Returns null if no boolean value was given.
10 | ///
11 | public sealed class InvertBoolConverter
12 | : IValueConverter
13 | {
14 | ///
15 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
16 | {
17 | if (!(value is bool))
18 | return null;
19 |
20 | return !((bool) value);
21 | }
22 |
23 | ///
24 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
25 | {
26 | if (!(value is bool))
27 | return null;
28 |
29 | return !((bool) value);
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/MultiplierConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Data;
4 |
5 | namespace Metrolib.Converters
6 | {
7 | ///
8 | /// Multiplies the given numeric value with the given .
9 | ///
10 | public sealed class MultiplierConverter
11 | : IValueConverter
12 | {
13 | ///
14 | /// The value used to multiply any value given to .
15 | ///
16 | public double Multiplier { get; set; }
17 |
18 | ///
19 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
20 | {
21 | if (!(value is double))
22 | return null;
23 |
24 | var actualValue = (double) value;
25 | return actualValue*Multiplier;
26 | }
27 |
28 | ///
29 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
30 | {
31 | return Binding.DoNothing;
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/NonEmptyStringToVisibleConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Data;
5 |
6 | namespace Metrolib.Converters
7 | {
8 | ///
9 | /// A value converter that converts non-empty strings to and everything
10 | /// else to .
11 | ///
12 | public sealed class NonEmptyStringToVisibleConverter
13 | : IValueConverter
14 | {
15 | ///
16 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
17 | {
18 | var actualValue = value as string;
19 | if (actualValue == null)
20 | return Visibility.Collapsed;
21 |
22 | return actualValue.Length > 0
23 | ? Visibility.Visible
24 | : Visibility.Collapsed;
25 | }
26 |
27 | ///
28 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
29 | {
30 | return Binding.DoNothing;
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/NonEmptyToHiddenConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections;
3 | using System.Globalization;
4 | using System.Windows;
5 | using System.Windows.Data;
6 |
7 | namespace Metrolib.Converters
8 | {
9 | ///
10 | /// Converts any that contains at least one value
11 | /// to . If it is empty, then
12 | /// is returned. Anything else yields null.
13 | ///
14 | public sealed class NonEmptyToHiddenConverter
15 | : IValueConverter
16 | {
17 | ///
18 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
19 | {
20 | var actualValue = value as IEnumerable;
21 | if (actualValue == null)
22 | return null;
23 |
24 | var it = actualValue.GetEnumerator();
25 | return it.MoveNext()
26 | ? Visibility.Hidden
27 | : Visibility.Visible;
28 | }
29 |
30 | ///
31 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
32 | {
33 | return Binding.DoNothing;
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/NullImageConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Controls;
5 | using System.Windows.Data;
6 |
7 | namespace Metrolib.Converters
8 | {
9 | ///
10 | /// To be used when one plans to bind a null value to a .
11 | /// Without this converter, an error is written to the output log that null is not a valid value for the binding.
12 | ///
13 | public class NullImageConverter : IValueConverter
14 | {
15 | ///
16 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
17 | {
18 | if (value == null)
19 | return DependencyProperty.UnsetValue;
20 | return value;
21 | }
22 |
23 | ///
24 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
25 | {
26 | return Binding.DoNothing;
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/NullOrEmptyStringToVisibleConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Data;
5 |
6 | namespace Metrolib.Converters
7 | {
8 | ///
9 | /// This converter converts an empty or null string to Visible, anything else to Collapsed.
10 | ///
11 | public class NullOrEmptyStringToVisibleConverter
12 | : IValueConverter
13 | {
14 | ///
15 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
16 | {
17 | var enumeration = value as string;
18 | if (enumeration == null)
19 | return Visibility.Visible;
20 |
21 | return enumeration.Length == 0
22 | ? Visibility.Visible
23 | : Visibility.Collapsed;
24 | }
25 |
26 | ///
27 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
28 | {
29 | return Binding.DoNothing;
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/NullToCollapsedConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Data;
5 |
6 | namespace Metrolib.Converters
7 | {
8 | ///
9 | /// Converts null to , anything else to .
10 | ///
11 | public sealed class NullToCollapsedConverter
12 | : IValueConverter
13 | {
14 | ///
15 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
16 | {
17 | return value == null
18 | ? Visibility.Collapsed
19 | : Visibility.Visible;
20 | }
21 |
22 | ///
23 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
24 | {
25 | return Binding.DoNothing;
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/NullToFalseConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Data;
4 |
5 | namespace Metrolib.Converters
6 | {
7 | ///
8 | /// Converts null to false and everything else to true.
9 | ///
10 | public sealed class NullToFalseConverter
11 | : IValueConverter
12 | {
13 | #region Implementation of IValueConverter
14 |
15 | ///
16 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
17 | {
18 | if (value == null)
19 | return false;
20 |
21 | return true;
22 | }
23 |
24 | ///
25 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
26 | {
27 | throw new NotImplementedException();
28 | }
29 |
30 | #endregion
31 | }
32 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/NullToHiddenConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Data;
5 |
6 | namespace Metrolib.Converters
7 | {
8 | ///
9 | /// Converts null to , anything else to .
10 | ///
11 | public sealed class NullToHiddenConverter
12 | : IValueConverter
13 | {
14 | ///
15 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
16 | {
17 | return value == null
18 | ? Visibility.Hidden
19 | : Visibility.Visible;
20 | }
21 |
22 | ///
23 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
24 | {
25 | return Binding.DoNothing;
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/NullToVisibleConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows;
4 | using System.Windows.Data;
5 |
6 | namespace Metrolib.Converters
7 | {
8 | ///
9 | /// Converts null to , anything else to .
10 | ///
11 | public sealed class NullToVisibleConverter
12 | : IValueConverter
13 | {
14 | ///
15 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
16 | {
17 | return value == null
18 | ? Visibility.Visible
19 | : Visibility.Collapsed;
20 | }
21 |
22 | ///
23 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
24 | {
25 | return Binding.DoNothing;
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/src/Metrolib/Converters/Unit.cs:
--------------------------------------------------------------------------------
1 | // ReSharper disable CheckNamespace
2 | namespace Metrolib.Converters
3 | // ReSharper restore CheckNamespace
4 | {
5 | ///
6 | ///
7 | ///
8 | public enum Unit
9 | {
10 | ///
11 | ///
12 | ///
13 | Millisecond,
14 | ///
15 | ///
16 | ///
17 | Second,
18 | ///
19 | ///
20 | ///
21 | Minute,
22 | ///
23 | ///
24 | ///
25 | Hour,
26 | ///
27 | ///
28 | ///
29 | Day,
30 | ///
31 | ///
32 | ///
33 | Week,
34 | ///
35 | ///
36 | ///
37 | Month,
38 | ///
39 | ///
40 | ///
41 | Year,
42 | ///
43 | ///
44 | ///
45 | Century,
46 | ///
47 | ///
48 | ///
49 | Decade,
50 | }
51 | }
--------------------------------------------------------------------------------
/src/Metrolib/Extensions/RandomExtensions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 |
4 | // ReSharper disable once CheckNamespace
5 | namespace Metrolib
6 | {
7 | ///
8 | /// Collects extension methods to the class.
9 | ///
10 | public static class RandomExtensions
11 | {
12 | ///
13 | /// Returns a random direction as a unit vector.
14 | ///
15 | ///
16 | ///
17 | public static Vector NextDirection(this Random rng)
18 | {
19 | var dir = new Vector(2*rng.NextDouble() - 1, 2*rng.NextDouble() - 1);
20 | dir.Normalize();
21 | return dir;
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/src/Metrolib/Extensions/VectorExtensions.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | // ReSharper disable once CheckNamespace
4 | namespace Metrolib
5 | {
6 | ///
7 | ///
8 | public static class VectorExtensions
9 | {
10 | ///
11 | /// Returns a vector that is clamped to the given length.
12 | ///
13 | ///
14 | ///
15 | ///
16 | public static Vector Clamped(this Vector that, double maxLength)
17 | {
18 | double length = that.Length;
19 | double div = length/maxLength;
20 | if (div > 1)
21 | {
22 | return that/div;
23 | }
24 | return that;
25 | }
26 |
27 | ///
28 | /// Returns a normalized vector of this.
29 | ///
30 | ///
31 | ///
32 | public static Vector Normalized(this Vector that)
33 | {
34 | that.Normalize();
35 | return that;
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/src/Metrolib/Extensions/VersionExtensions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | // ReSharper disable once CheckNamespace
4 | namespace Metrolib
5 | {
6 | ///
7 | /// Provides extension methods for the class.
8 | ///
9 | public static class VersionExtensions
10 | {
11 | ///
12 | /// Produces a humna readable string of this version.
13 | ///
14 | ///
15 | ///
16 | public static string Format(this Version version)
17 | {
18 | var value = version.ToString(3);
19 | return value;
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/Metrolib/Geometry/Angle.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics.Contracts;
3 |
4 | namespace Metrolib.Geometry
5 | {
6 | ///
7 | /// Helper class to help deal with angle from/to radian conversions.
8 | ///
9 | public struct Angle
10 | {
11 | ///
12 | /// Converts an angle in degrees to radians.
13 | ///
14 | ///
15 | ///
16 | [Pure]
17 | public static double ToRadians(double degrees)
18 | {
19 | return degrees/180*Math.PI;
20 | }
21 |
22 | ///
23 | /// Converts an angle in radians to degrees.
24 | ///
25 | ///
26 | ///
27 | [Pure]
28 | public static double ToDegrees(double radians)
29 | {
30 | return radians/Math.PI*180;
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/src/Metrolib/ListSliceDebugView.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Linq;
4 |
5 | namespace Metrolib
6 | {
7 | ///
8 | ///
9 | ///
10 | ///
11 | public sealed class ListSliceDebugView
12 | {
13 | private readonly ListSlice _slice;
14 |
15 | public ListSliceDebugView(ListSlice slice)
16 | {
17 | if (slice == null)
18 | throw new ArgumentNullException(nameof(slice));
19 |
20 | _slice = slice;
21 | }
22 |
23 | [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
24 | public T[] Items => _slice.ToArray();
25 | }
26 | }
--------------------------------------------------------------------------------
/src/Metrolib/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/Netstat/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | //In order to begin building localizable applications, set
4 | //CultureYouAreCodingWith in your .csproj file
5 | //inside a . For example, if you are using US english
6 | //in your source files, set the to en-US. Then uncomment
7 | //the NeutralResourceLanguage attribute below. Update the "en-US" in
8 | //the line below to match the UICulture setting in the project file.
9 |
10 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
11 |
12 |
13 | [assembly: ThemeInfo(
14 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
15 | //(used if a resource is not found in the page,
16 | // or application resource dictionaries)
17 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
18 | //(used if a resource is not found in the page,
19 | // app, or any theme specific resource dictionaries)
20 | )]
21 |
--------------------------------------------------------------------------------
/src/Netstat/BusinessLogic/INetstatListener.cs:
--------------------------------------------------------------------------------
1 | namespace Netstat.BusinessLogic
2 | {
3 | public interface INetstatListener
4 | {
5 | void OnChanged(TcpConnectionDescriptor descriptor);
6 | }
7 | }
--------------------------------------------------------------------------------
/src/Netstat/BusinessLogic/ProcessDescriptor.cs:
--------------------------------------------------------------------------------
1 | namespace Netstat.BusinessLogic
2 | {
3 | public sealed class ProcessDescriptor
4 | {
5 |
6 | }
7 | }
--------------------------------------------------------------------------------
/src/Netstat/BusinessLogic/TcpConnectionEqualityComparer.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Netstat.BusinessLogic
4 | {
5 | ///
6 | /// Compares two tcp descriptors for equality based on their local / foreign endpoints.
7 | ///
8 | public sealed class TcpConnectionEqualityComparer
9 | : IEqualityComparer
10 | {
11 | public bool Equals(TcpConnectionDescriptor x, TcpConnectionDescriptor y)
12 | {
13 | return Equals(x.ForeignEndPoint, y.ForeignEndPoint) &&
14 | Equals(x.LocalEndPoint, y.LocalEndPoint);
15 | }
16 |
17 | public int GetHashCode(TcpConnectionDescriptor value)
18 | {
19 | unchecked
20 | {
21 | int hashCode = (value.ForeignEndPoint != null ? value.ForeignEndPoint.GetHashCode() : 0);
22 | hashCode = (hashCode*397) ^ (value.LocalEndPoint != null ? value.LocalEndPoint.GetHashCode() : 0);
23 | return hashCode;
24 | }
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/src/Netstat/EndPointViewModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Net;
3 | using Metrolib;
4 |
5 | namespace Netstat
6 | {
7 | public sealed class EndPointViewModel
8 | : INode
9 | {
10 | private readonly EndPoint _endPoint;
11 |
12 | public EndPointViewModel(EndPoint endPoint)
13 | {
14 | if (endPoint == null)
15 | throw new ArgumentNullException("endPoint");
16 |
17 | _endPoint = endPoint;
18 | }
19 |
20 | public override string ToString()
21 | {
22 | return _endPoint.ToString();
23 | }
24 |
25 | public string Name
26 | {
27 | get { return ToString(); }
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/src/Netstat/LocalComputerViewModel.cs:
--------------------------------------------------------------------------------
1 | using Metrolib;
2 |
3 | namespace Netstat
4 | {
5 | public class LocalComputerViewModel : INode
6 | {
7 | public override string ToString()
8 | {
9 | return "Local";
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Netstat/TcpConnectionViewModel.cs:
--------------------------------------------------------------------------------
1 | using System.Net.NetworkInformation;
2 | using Metrolib;
3 |
4 | namespace Netstat
5 | {
6 | public sealed class TcpConnectionViewModel
7 | : IEdge
8 | {
9 | private readonly EndPointViewModel _localEndPoint;
10 | private readonly EndPointViewModel _foreignEndPoint;
11 | private readonly TcpState _state;
12 |
13 | public TcpConnectionViewModel(EndPointViewModel localEndPoint, EndPointViewModel foreign, TcpState state)
14 | {
15 | _localEndPoint = localEndPoint;
16 | _foreignEndPoint = foreign;
17 | _state = state;
18 | }
19 |
20 | public override string ToString()
21 | {
22 | return string.Format("{0} {1} {2}", _localEndPoint, _foreignEndPoint, _state);
23 | }
24 |
25 | public EdgeDirection Direction
26 | {
27 | get { return EdgeDirection.Node1ToNode2; }
28 | }
29 |
30 | public INode Node1
31 | {
32 | get { return _localEndPoint; }
33 | }
34 |
35 | public INode Node2
36 | {
37 | get { return _foreignEndPoint; }
38 | }
39 | }
40 | }
--------------------------------------------------------------------------------
/src/TwitterLiveStream/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/TwitterLiveStream/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Linq;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 |
9 | namespace TwitterLiveStream
10 | {
11 | ///
12 | /// Interaction logic for App.xaml
13 | ///
14 | public partial class App : Application
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/TwitterLiveStream/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | //In order to begin building localizable applications, set
4 | //CultureYouAreCodingWith in your .csproj file
5 | //inside a . For example, if you are using US english
6 | //in your source files, set the to en-US. Then uncomment
7 | //the NeutralResourceLanguage attribute below. Update the "en-US" in
8 | //the line below to match the UICulture setting in the project file.
9 |
10 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
11 |
12 |
13 | [assembly: ThemeInfo(
14 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
15 | //(used if a resource is not found in the page,
16 | // or application resource dictionaries)
17 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
18 | //(used if a resource is not found in the page,
19 | // app, or any theme specific resource dictionaries)
20 | )]
21 |
--------------------------------------------------------------------------------
/src/TwitterLiveStream/MainWindow.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/TwitterLiveStream/MainWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace TwitterLiveStream
2 | {
3 | public partial class MainWindow
4 | {
5 | public MainWindow()
6 | {
7 | InitializeComponent();
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/TwitterLiveStream/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------