Browse Source

Enable compiled bindings by default and fix all the usages + adjust some namespaces

pull/9443/head
Max Katz 3 years ago
parent
commit
fa0cea97fe
  1. 1
      build/BuildTargets.targets
  2. 6
      samples/BindingDemo/MainWindow.xaml
  3. 6
      samples/BindingDemo/TestItemView.xaml
  4. 1
      samples/ControlCatalog/App.xaml
  5. 15
      samples/ControlCatalog/ControlCatalog.csproj
  6. 11
      samples/ControlCatalog/DecoratedWindow.xaml
  7. 8
      samples/ControlCatalog/MainView.xaml
  8. 11
      samples/ControlCatalog/MainWindow.xaml
  9. 20
      samples/ControlCatalog/Models/StateData.cs
  10. 6
      samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml
  11. 20
      samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml.cs
  12. 1
      samples/ControlCatalog/Pages/BorderPage.xaml
  13. 2
      samples/ControlCatalog/Pages/ButtonSpinnerPage.xaml
  14. 2
      samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml
  15. 4
      samples/ControlCatalog/Pages/ColorPickerPage.xaml
  16. 8
      samples/ControlCatalog/Pages/ComboBoxPage.xaml
  17. 4
      samples/ControlCatalog/Pages/CompositionPage.axaml
  18. 6
      samples/ControlCatalog/Pages/ContextFlyoutPage.xaml
  19. 6
      samples/ControlCatalog/Pages/ContextMenuPage.xaml
  20. 6
      samples/ControlCatalog/Pages/CursorPage.xaml
  21. 30
      samples/ControlCatalog/Pages/DataGridPage.xaml
  22. 2
      samples/ControlCatalog/Pages/DateTimePickerPage.xaml
  23. 4
      samples/ControlCatalog/Pages/ExpanderPage.xaml
  24. 8
      samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml
  25. 4
      samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml.cs
  26. 4
      samples/ControlCatalog/Pages/LabelsPage.axaml
  27. 4
      samples/ControlCatalog/Pages/ListBoxPage.xaml
  28. 8
      samples/ControlCatalog/Pages/MenuPage.xaml
  29. 4
      samples/ControlCatalog/Pages/NotificationsPage.xaml
  30. 11
      samples/ControlCatalog/Pages/NumericUpDownPage.xaml
  31. 3
      samples/ControlCatalog/Pages/NumericUpDownPage.xaml.cs
  32. 2
      samples/ControlCatalog/Pages/OpenGlPage.xaml
  33. 4
      samples/ControlCatalog/Pages/PlatformInfoPage.xaml
  34. 2
      samples/ControlCatalog/Pages/ProgressBarPage.xaml
  35. 4
      samples/ControlCatalog/Pages/ScrollViewerPage.xaml
  36. 2
      samples/ControlCatalog/Pages/SliderPage.xaml
  37. 6
      samples/ControlCatalog/Pages/SplitViewPage.xaml
  38. 10
      samples/ControlCatalog/Pages/TabControlPage.xaml
  39. 32
      samples/ControlCatalog/Pages/TabControlPage.xaml.cs
  40. 10
      samples/ControlCatalog/Pages/TabStripPage.xaml
  41. 40
      samples/ControlCatalog/Pages/TabStripPage.xaml.cs
  42. 2
      samples/ControlCatalog/Pages/TextBoxPage.xaml
  43. 3
      samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml
  44. 4
      samples/ControlCatalog/Pages/TreeViewPage.xaml
  45. 2
      samples/ControlCatalog/Pages/ViewboxPage.xaml
  46. 4
      samples/ControlCatalog/Pages/WindowCustomizationsPage.xaml
  47. 20
      samples/ControlCatalog/ViewModels/CursorPageViewModel.cs
  48. 44
      samples/ControlCatalog/ViewModels/ItemsRepeaterPageViewModel.cs
  49. 26
      samples/ControlCatalog/ViewModels/TabControlPageViewModel.cs
  50. 4
      samples/ControlCatalog/Views/CustomNotificationView.xaml
  51. 4
      samples/IntegrationTestApp/MainWindow.axaml
  52. 1
      samples/IntegrationTestApp/ShowWindowTest.axaml
  53. 1
      samples/MobileSandbox/App.xaml
  54. 4
      samples/MobileSandbox/MainView.xaml
  55. 8
      samples/MobileSandbox/Views/CustomNotificationView.xaml
  56. 6
      samples/RenderDemo/MainWindow.xaml
  57. 4
      samples/RenderDemo/Pages/AnimationsPage.xaml
  58. 2
      samples/RenderDemo/Pages/CustomAnimatorPage.xaml
  59. 2
      samples/RenderDemo/Pages/GlyphRunPage.xaml
  60. 2
      samples/RenderDemo/Pages/LineBoundsPage.xaml
  61. 4
      samples/RenderDemo/Pages/Transform3DPage.axaml
  62. 2
      samples/RenderDemo/Pages/TransitionsPage.xaml
  63. 6
      samples/SampleControls/HamburgerMenu/HamburgerMenu.xaml
  64. 4
      samples/VirtualizationDemo/MainWindow.xaml
  65. 5
      src/Avalonia.Controls.ColorPicker/Themes/Fluent/ColorPicker.xaml
  66. 3
      src/Avalonia.Controls.ColorPicker/Themes/Fluent/ColorPreviewer.xaml
  67. 3
      src/Avalonia.Controls.ColorPicker/Themes/Fluent/ColorSlider.xaml
  68. 3
      src/Avalonia.Controls.ColorPicker/Themes/Fluent/ColorSpectrum.xaml
  69. 5
      src/Avalonia.Controls.ColorPicker/Themes/Fluent/ColorView.xaml
  70. 3
      src/Avalonia.Controls.ColorPicker/Themes/Fluent/Fluent.xaml
  71. 5
      src/Avalonia.Controls.ColorPicker/Themes/Simple/ColorPicker.xaml
  72. 3
      src/Avalonia.Controls.ColorPicker/Themes/Simple/ColorPreviewer.xaml
  73. 3
      src/Avalonia.Controls.ColorPicker/Themes/Simple/ColorSlider.xaml
  74. 3
      src/Avalonia.Controls.ColorPicker/Themes/Simple/ColorSpectrum.xaml
  75. 5
      src/Avalonia.Controls.ColorPicker/Themes/Simple/ColorView.xaml
  76. 3
      src/Avalonia.Controls.ColorPicker/Themes/Simple/Simple.xaml
  77. 6
      src/Avalonia.Controls.DataGrid/Themes/Fluent.xaml
  78. 5
      src/Avalonia.Controls.DataGrid/Themes/Simple.xaml
  79. 1
      src/Avalonia.Diagnostics/Diagnostics/Controls/FilterTextBox.axaml
  80. 2
      src/Avalonia.Diagnostics/Diagnostics/Controls/ThicknessEditor.axaml
  81. 4
      src/Avalonia.Diagnostics/Diagnostics/ViewModels/MainViewModel.cs
  82. 4
      src/Avalonia.Diagnostics/Diagnostics/Views/ConsoleView.xaml
  83. 28
      src/Avalonia.Diagnostics/Diagnostics/Views/ControlDetailsView.xaml
  84. 10
      src/Avalonia.Diagnostics/Diagnostics/Views/EventsPageView.xaml
  85. 7
      src/Avalonia.Diagnostics/Diagnostics/Views/LayoutExplorerView.axaml
  86. 8
      src/Avalonia.Diagnostics/Diagnostics/Views/MainView.xaml
  87. 8
      src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml
  88. 7
      src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml
  89. 4
      src/Avalonia.Dialogs/AboutAvaloniaDialog.xaml
  90. 7
      src/Avalonia.Dialogs/InternalViewModelBase.cs
  91. 3
      src/Avalonia.Dialogs/ManagedFileChooserFilterViewModel.cs
  92. 3
      src/Avalonia.Dialogs/ManagedFileChooserItemViewModel.cs
  93. 2
      src/Avalonia.Dialogs/ManagedFileChooserNavigationItem.cs
  94. 3
      src/Avalonia.Dialogs/ManagedFileChooserViewModel.cs
  95. 5
      src/Avalonia.Themes.Fluent/Controls/ButtonSpinner.xaml
  96. 3
      src/Avalonia.Themes.Fluent/Controls/CalendarDatePicker.xaml
  97. 8
      src/Avalonia.Themes.Fluent/Controls/CalendarItem.xaml
  98. 2
      src/Avalonia.Themes.Fluent/Controls/ComboBox.xaml
  99. 5
      src/Avalonia.Themes.Fluent/Controls/DataValidationErrors.xaml
  100. 3
      src/Avalonia.Themes.Fluent/Controls/DatePicker.xaml

1
build/BuildTargets.targets

@ -3,6 +3,7 @@
<AvaloniaBuildTasksLocation>$(MSBuildThisFileDirectory)\..\src\Avalonia.Build.Tasks\bin\$(Configuration)\netstandard2.0\Avalonia.Build.Tasks.dll</AvaloniaBuildTasksLocation>
<AvaloniaUseExternalMSBuild>true</AvaloniaUseExternalMSBuild>
<AvaloniaXamlIlVerifyIl>true</AvaloniaXamlIlVerifyIl>
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
</PropertyGroup>
<Import Project="$(MSBuildThisFileDirectory)\..\packages\Avalonia\AvaloniaBuildTasks.props"/>
<Import Project="$(MSBuildThisFileDirectory)\..\packages\Avalonia\AvaloniaBuildTasks.targets"/>

6
samples/BindingDemo/MainWindow.xaml

@ -1,8 +1,8 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
x:Class="BindingDemo.MainWindow"
xmlns:vm="clr-namespace:BindingDemo.ViewModels"
xmlns:local="clr-namespace:BindingDemo"
xmlns:vm="using:BindingDemo.ViewModels"
xmlns:local="using:BindingDemo"
Title="AvaloniaUI Bindings Test"
Width="800"
Height="600"
@ -81,7 +81,7 @@
<TextBlock FontSize="16" Text="Multiple"/>
<ListBox Items="{Binding Items}" SelectionMode="Multiple" Selection="{Binding Selection}"/>
</StackPanel>
<ContentControl Content="{Binding SelectedItems[0]}">
<ContentControl Content="{ReflectionBinding Selection.SelectedItems[0]}">
<ContentControl.DataTemplates>
<DataTemplate DataType="vm:TestItem">
<local:TestItemView></local:TestItemView>

6
samples/BindingDemo/TestItemView.xaml

@ -1,8 +1,10 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
x:Class="BindingDemo.TestItemView">
xmlns:viewModels="using:BindingDemo.ViewModels"
x:Class="BindingDemo.TestItemView"
x:DataType="viewModels:TestItem">
<StackPanel>
<TextBlock Classes="h1" Text="{Binding StringValue}"/>
<TextBox Text="{Binding Detail}" AcceptsReturn="True"/>
</StackPanel>
</UserControl>
</UserControl>

1
samples/ControlCatalog/App.xaml

@ -2,7 +2,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:ControlCatalog.ViewModels"
x:DataType="vm:ApplicationViewModel"
x:CompileBindings="True"
Name="Avalonia ControlCatalog"
x:Class="ControlCatalog.App">
<Application.Resources>

15
samples/ControlCatalog/ControlCatalog.csproj

@ -14,9 +14,6 @@
<AvaloniaResource Include="Assets\*" />
<AvaloniaResource Include="Assets\Fonts\*" />
</ItemGroup>
<ItemGroup>
<None Remove="Pages\NativeEmbedPage.xaml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Assets\Fonts\SourceSansPro-Bold.ttf" />
<EmbeddedResource Include="Assets\Fonts\SourceSansPro-BoldItalic.ttf" />
@ -35,17 +32,5 @@
<ProjectReference Include="..\SampleControls\ControlSamples.csproj" />
</ItemGroup>
<ItemGroup>
<AvaloniaResource Update="Pages\NativeEmbedPage.xaml">
<Generator>MSBuild:Compile</Generator>
</AvaloniaResource>
</ItemGroup>
<ItemGroup>
<Compile Update="Pages\NativeEmbedPage.xaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
</ItemGroup>
<Import Project="..\..\build\BuildTargets.targets" />
</Project>

11
samples/ControlCatalog/DecoratedWindow.xaml

@ -2,7 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.DecoratedWindow"
Title="Avalonia Control Gallery"
xmlns:local="clr-namespace:ControlCatalog" SystemDecorations="None" Name="Window">
SystemDecorations="None" Name="Window">
<NativeMenu.Menu>
<NativeMenu>
<NativeMenuItem Header="Decorated">
@ -43,8 +43,13 @@
<StackPanel>
<TextBlock>Hello world!</TextBlock>
<CheckBox IsChecked="{Binding ElementName=Window, Path=HasSystemDecorations}">Decorated</CheckBox>
<ComboBox SelectedItem="{Binding ElementName=Window, Path=SystemDecorations}">
<ComboBox.Items>
<SystemDecorations>None</SystemDecorations>
<SystemDecorations>BorderOnly</SystemDecorations>
<SystemDecorations>Full</SystemDecorations>
</ComboBox.Items>
</ComboBox>
<CheckBox IsChecked="{Binding ElementName=Window, Path=CanResize}">CanResize</CheckBox>
</StackPanel>
</Border>

8
samples/ControlCatalog/MainView.xaml

@ -1,9 +1,11 @@
<UserControl x:Class="ControlCatalog.MainView"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:ControlSamples;assembly=ControlSamples"
xmlns:models="clr-namespace:ControlCatalog.Models"
xmlns:pages="clr-namespace:ControlCatalog.Pages">
xmlns:controls="using:ControlSamples"
xmlns:models="using:ControlCatalog.Models"
xmlns:pages="using:ControlCatalog.Pages"
xmlns:viewModels="using:ControlCatalog.ViewModels"
x:DataType="viewModels:MainWindowViewModel">
<Grid>
<Grid.Styles>
<Style Selector="TextBlock.h2">

11
samples/ControlCatalog/MainWindow.xaml

@ -1,19 +1,20 @@
<Window xmlns="https://github.com/avaloniaui" MinWidth="500" MinHeight="300"
Width="1024" Height="800"
xmlns:pages="clr-namespace:ControlCatalog.Pages"
xmlns:pages="using:ControlCatalog.Pages"
Title="Avalonia Control Gallery"
Icon="/Assets/test_icon.ico"
xmlns:local="clr-namespace:ControlCatalog"
xmlns:local="using:ControlCatalog"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:ControlCatalog.ViewModels"
xmlns:v="clr-namespace:ControlCatalog.Views"
xmlns:vm="using:ControlCatalog.ViewModels"
xmlns:v="using:ControlCatalog.Views"
ExtendClientAreaToDecorationsHint="{Binding ExtendClientAreaEnabled}"
ExtendClientAreaChromeHints="{Binding ChromeHints}"
ExtendClientAreaTitleBarHeightHint="{Binding TitleBarHeight}"
TransparencyLevelHint="{Binding TransparencyLevel}"
x:Name="MainWindow"
Background="Transparent"
x:Class="ControlCatalog.MainWindow" WindowState="{Binding WindowState, Mode=TwoWay}">
x:Class="ControlCatalog.MainWindow" WindowState="{Binding WindowState, Mode=TwoWay}"
x:DataType="vm:MainWindowViewModel">
<NativeMenu.Menu>
<NativeMenu>
<NativeMenuItem Header="File">

20
samples/ControlCatalog/Models/StateData.cs

@ -0,0 +1,20 @@
namespace ControlCatalog.Models;
public class StateData
{
public string Name { get; private set; }
public string Abbreviation { get; private set; }
public string Capital { get; private set; }
public StateData(string name, string abbreviatoin, string capital)
{
Name = name;
Abbreviation = abbreviatoin;
Capital = capital;
}
public override string ToString()
{
return Name;
}
}

6
samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml

@ -2,8 +2,8 @@
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sys="clr-namespace:System;assembly=netstandard"
xmlns:sys="using:System"
xmlns:models="using:ControlCatalog.Models"
d:DesignHeight="600"
d:DesignWidth="400">
<StackPanel Orientation="Vertical"
@ -45,7 +45,7 @@
<StackPanel>
<TextBlock Text="ValueMemberBinding" />
<AutoCompleteBox ValueMemberBinding="{Binding Capital}" />
<AutoCompleteBox ValueMemberBinding="{Binding Capital, x:DataType=models:StateData}" />
</StackPanel>
<StackPanel>
<TextBlock Text="Multi-Binding" />

20
samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml.cs

@ -8,30 +8,12 @@ using System.Threading;
using System.Threading.Tasks;
using Avalonia.Data.Converters;
using Avalonia.Data;
using ControlCatalog.Models;
namespace ControlCatalog.Pages
{
public class AutoCompleteBoxPage : UserControl
{
public class StateData
{
public string Name { get; private set; }
public string Abbreviation { get; private set; }
public string Capital { get; private set; }
public StateData(string name, string abbreviatoin, string capital)
{
Name = name;
Abbreviation = abbreviatoin;
Capital = capital;
}
public override string ToString()
{
return Name;
}
}
private StateData[] BuildAllStates()
{
return new StateData[]

1
samples/ControlCatalog/Pages/BorderPage.xaml

@ -1,7 +1,6 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
d:DesignHeight="800"
d:DesignWidth="400"
x:Class="ControlCatalog.Pages.BorderPage">

2
samples/ControlCatalog/Pages/ButtonSpinnerPage.xaml

@ -1,7 +1,7 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.ButtonSpinnerPage"
xmlns:sys="clr-namespace:System;assembly=netstandard">
xmlns:sys="using:System">
<StackPanel Orientation="Vertical" Spacing="4">
<TextBlock Classes="h2">The ButtonSpinner control allows you to add button spinners to any element and then respond to the Spin event to manipulate that element.</TextBlock>

2
samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml

@ -1,6 +1,6 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:ControlCatalog.ViewModels"
xmlns:vm="using:ControlCatalog.ViewModels"
x:DataType="vm:MainWindowViewModel"
x:Class="ControlCatalog.Pages.CalendarDatePickerPage">
<StackPanel Orientation="Vertical" Spacing="4">

4
samples/ControlCatalog/Pages/ColorPickerPage.xaml

@ -2,9 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="clr-namespace:Avalonia.Controls;assembly=Avalonia.Controls.ColorPicker"
xmlns:primitives="clr-namespace:Avalonia.Controls.Primitives;assembly=Avalonia.Controls"
xmlns:pc="clr-namespace:Avalonia.Controls.Primitives.Converters;assembly=Avalonia.Controls.ColorPicker"
xmlns:controls="using:Avalonia.Controls"
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"

8
samples/ControlCatalog/Pages/ComboBoxPage.xaml

@ -3,7 +3,9 @@
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:col="using:System.Collections"
xmlns:sys="using:System">
xmlns:sys="using:System"
xmlns:viewModels="using:ControlCatalog.ViewModels"
x:DataType="viewModels:ComboBoxPageViewModel">
<StackPanel Orientation="Vertical" Spacing="4">
<TextBlock Classes="h2">A drop-down list.</TextBlock>
@ -39,7 +41,7 @@
</col:ArrayList>
</ComboBox.Items>
<ComboBox.ItemTemplate>
<DataTemplate>
<DataTemplate x:DataType="sys:String">
<Panel>
<TextBlock Text="{Binding}" />
<TextBlock IsVisible="{Binding Converter={x:Static ObjectConverters.IsNull}}" Text="Null object" />
@ -71,7 +73,7 @@
SelectedIndex="0"
WrapSelection="{Binding WrapSelection}">
<ComboBox.ItemTemplate>
<DataTemplate>
<DataTemplate x:DataType="FontFamily">
<TextBlock FontFamily="{Binding}" Text="{Binding Name}" />
</DataTemplate>
</ComboBox.ItemTemplate>

4
samples/ControlCatalog/Pages/CompositionPage.axaml

@ -1,6 +1,6 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:pages="clr-namespace:ControlCatalog.Pages"
xmlns:pages="using:ControlCatalog.Pages"
x:Class="ControlCatalog.Pages.CompositionPage">
<StackPanel>
<TextBlock Classes="h1">Implicit animations</TextBlock>
@ -42,4 +42,4 @@
</StackPanel>
</UserControl>
</UserControl>

6
samples/ControlCatalog/Pages/ContextFlyoutPage.xaml

@ -3,9 +3,11 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="using:ControlCatalog.ViewModels"
d:DesignHeight="450"
d:DesignWidth="800"
mc:Ignorable="d">
mc:Ignorable="d"
x:DataType="viewModels:ContextPageViewModel">
<UserControl.Styles>
<Style Selector="FlyoutPresenter.NoPadding">
<Setter Property="Padding" Value="0" />
@ -57,7 +59,7 @@
</Border>
<Border Classes="context-target">
<Border.Styles>
<Style Selector="MenuFlyoutPresenter MenuItem">
<Style Selector="MenuFlyoutPresenter MenuItem" x:DataType="viewModels:MenuItemViewModel">
<Setter Property="Header" Value="{Binding Header}"/>
<Setter Property="Items" Value="{Binding Items}"/>
<Setter Property="Command" Value="{Binding Command}"/>

6
samples/ControlCatalog/Pages/ContextMenuPage.xaml

@ -1,6 +1,8 @@
<UserControl x:Class="ControlCatalog.Pages.ContextMenuPage"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:viewModels="using:ControlCatalog.ViewModels"
x:DataType="viewModels:ContextPageViewModel">
<StackPanel Orientation="Vertical" Spacing="4">
<TextBlock Classes="h2">A right click menu that can be applied to any control.</TextBlock>
@ -47,7 +49,7 @@
</Border>
<Border>
<Border.Styles>
<Style Selector="ContextMenu MenuItem">
<Style Selector="ContextMenu MenuItem" x:DataType="viewModels:MenuItemViewModel">
<Setter Property="Header" Value="{Binding Header}"/>
<Setter Property="Items" Value="{Binding Items}"/>
<Setter Property="Command" Value="{Binding Command}"/>

6
samples/ControlCatalog/Pages/CursorPage.xaml

@ -1,6 +1,8 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.CursorPage">
xmlns:viewModels="using:ControlCatalog.ViewModels"
x:Class="ControlCatalog.Pages.CursorPage"
x:DataType="viewModels:CursorPageViewModel">
<Grid ColumnDefinitions="*,*" RowDefinitions="Auto,*">
<StackPanel Grid.ColumnSpan="2" Orientation="Vertical" Spacing="4">
<TextBlock Classes="h2">Defines a cursor (mouse pointer)</TextBlock>
@ -9,7 +11,7 @@
<ListBox Grid.Row="1" Items="{Binding StandardCursors}" Margin="0 8 8 8">
<ListBox.Styles>
<Style Selector="ListBoxItem">
<Setter Property="Cursor" Value="{Binding Cursor}"/>
<Setter Property="Cursor" Value="{Binding Cursor}" x:DataType="viewModels:StandardCursorModel"/>
</Style>
</ListBox.Styles>
<ListBox.ItemTemplate>

30
samples/ControlCatalog/Pages/DataGridPage.xaml

@ -4,13 +4,13 @@
x:Class="ControlCatalog.Pages.DataGridPage">
<UserControl.Resources>
<local:GDPValueConverter x:Key="GDPConverter" />
<DataTemplate x:Key="Demo.DataTemplates.CountryHeader">
<DataTemplate x:Key="Demo.DataTemplates.CountryHeader" x:DataType="local:Country">
<StackPanel Orientation="Horizontal" Spacing="5">
<PathIcon Height="12" Data="M 255 116 A 1 1 0 0 0 254 117 L 254 130 A 1 1 0 0 0 255 131 A 1 1 0 0 0 256 130 L 256 123.87109 C 256.1125 123.90694 256.2187 123.94195 256.33984 123.97852 C 257.18636 124.23404 258.19155 124.5 259 124.5 C 259.80845 124.5 260.52133 124.2168 261.17773 123.9668 C 261.83414 123.7168 262.43408 123.5 263 123.5 C 263.56592 123.5 264.5612 123.73404 265.37109 123.97852 C 266.18098 124.22299 266.82227 124.4668 266.82227 124.4668 A 0.50005 0.50005 0 0 0 267.5 124 L 267.5 118 A 0.50005 0.50005 0 0 0 267.17773 117.5332 C 267.17773 117.5332 266.50667 117.27701 265.66016 117.02148 C 264.81364 116.76596 263.80845 116.5 263 116.5 C 262.19155 116.5 261.47867 116.7832 260.82227 117.0332 C 260.16586 117.2832 259.56592 117.5 259 117.5 C 258.43408 117.5 257.4388 117.26596 256.62891 117.02148 C 256.39123 116.94974 256.17716 116.87994 255.98047 116.81445 A 1 1 0 0 0 255 116 z M 263 117.5 C 263.56592 117.5 264.5612 117.73404 265.37109 117.97852 C 266.00097 118.16865 266.29646 118.28239 266.5 118.35742 L 266.5 120.29297 C 266.25708 120.21012 265.97978 120.11797 265.66016 120.02148 C 264.81364 119.76596 263.80845 119.5 263 119.5 C 262.19155 119.5 261.47867 119.7832 260.82227 120.0332 C 260.16586 120.2832 259.56592 120.5 259 120.5 C 258.43408 120.5 257.4388 120.26596 256.62891 120.02148 C 256.39971 119.9523 256.19148 119.88388 256 119.82031 L 256 117.87109 C 256.1125 117.90694 256.2187 117.94195 256.33984 117.97852 C 257.18636 118.23404 258.19155 118.5 259 118.5 C 259.80845 118.5 260.52133 118.2168 261.17773 117.9668 C 261.83414 117.7168 262.43408 117.5 263 117.5 z M 263 120.5 C 263.56592 120.5 264.5612 120.73404 265.37109 120.97852 C 265.8714 121.12954 266.2398 121.25641 266.5 121.34961 L 266.5 123.30469 C 266.22286 123.20649 266.12863 123.1629 265.66016 123.02148 C 264.81364 122.76596 263.80845 122.5 263 122.5 C 262.19155 122.5 261.47867 122.7832 260.82227 123.0332 C 260.16586 123.2832 259.56592 123.5 259 123.5 C 258.43408 123.5 257.4388 123.26596 256.62891 123.02148 C 256.39971 122.9523 256.19148 122.88388 256 122.82031 L 256 120.87109 C 256.1125 120.90694 256.2187 120.94195 256.33984 120.97852 C 257.18636 121.23404 258.19155 121.5 259 121.5 C 259.80845 121.5 260.52133 121.2168 261.17773 120.9668 C 261.83414 120.7168 262.43408 120.5 263 120.5 z" />
<TextBlock Text="{Binding}"/>
</StackPanel>
</DataTemplate>
<ControlTheme x:Key="GdpCell" TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
<ControlTheme x:Key="GdpCell" TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}" x:DataType="local:Country">
<Setter Property="Background" Value="{Binding Path=GDP, Mode=OneWay, Converter={StaticResource GDPConverter}}" />
</ControlTheme>
</UserControl.Resources>
@ -49,15 +49,15 @@
AlternatingRowBackground="#1fff">
<DataGrid.Columns>
<!-- Using HeaderTemplate -->
<DataGridTextColumn Header="Country" HeaderTemplate="{StaticResource Demo.DataTemplates.CountryHeader}" Binding="{Binding Name}" Width="6*" />
<!-- CompiledBinding example of usage. -->
<DataGridTextColumn Header="Country" HeaderTemplate="{StaticResource Demo.DataTemplates.CountryHeader}" Binding="{Binding Name}" Width="6*" x:DataType="local:Country" />
<DataGridTextColumn Header="Region" Binding="{CompiledBinding Region}" Width="4*" x:DataType="local:Country" />
<DataGridTextColumn Header="Population" Binding="{Binding Population}" Width="3*" />
<DataGridTextColumn Header="Area" Binding="{Binding Area}" Width="3*" />
<DataGridTextColumn Header="Population" Binding="{Binding Population}" Width="3*" x:DataType="local:Country" />
<DataGridTextColumn Header="Area" Binding="{Binding Area}" Width="3*" x:DataType="local:Country" />
<DataGridTextColumn Header="GDP" Binding="{Binding GDP}" Width="3*"
CellTheme="{StaticResource GdpCell}"
MinWidth="200"
IsVisible="{Binding #ShowGDP.IsChecked}"/>
IsVisible="{Binding #ShowGDP.IsChecked}"
x:DataType="local:Country" />
</DataGrid.Columns>
</DataGrid>
</DockPanel>
@ -65,11 +65,11 @@
<TabItem Header="Grouping">
<DataGrid Name="dataGridGrouping" Margin="12">
<DataGrid.Columns>
<DataGridTextColumn Header="Country" Binding="{Binding Name}" Width="6*" />
<DataGridTextColumn Header="Region" Binding="{Binding Region}" Width="4*" />
<DataGridTextColumn DisplayIndex="3" Header="Population" Binding="{Binding Population}" Width="3*" />
<DataGridTextColumn DisplayIndex="2" Header="Area" Binding="{Binding Area}" Width="3*" />
<DataGridTextColumn Header="GDP" Binding="{Binding GDP}" Width="3*" />
<DataGridTextColumn Header="Country" Binding="{Binding Name}" Width="6*" x:DataType="local:Country" />
<DataGridTextColumn Header="Region" Binding="{Binding Region}" Width="4*" x:DataType="local:Country" />
<DataGridTextColumn DisplayIndex="3" Header="Population" Binding="{Binding Population}" Width="3*" x:DataType="local:Country" />
<DataGridTextColumn DisplayIndex="2" Header="Area" Binding="{Binding Area}" Width="3*" x:DataType="local:Country" />
<DataGridTextColumn Header="GDP" Binding="{Binding GDP}" Width="3*" x:DataType="local:Country" />
</DataGrid.Columns>
</DataGrid>
</TabItem>
@ -77,9 +77,9 @@
<Grid RowDefinitions="*,Auto">
<DataGrid Name="dataGridEdit" Margin="12" Grid.Row="0">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName}" Width="2*" FontSize="{Binding #FontSizeSlider.Value, Mode=OneWay}" />
<DataGridTextColumn Header="Last" Binding="{Binding LastName}" Width="2*" FontSize="{Binding #FontSizeSlider.Value, Mode=OneWay}" />
<DataGridCheckBoxColumn Header="Is Banned" Binding="{Binding IsBanned}" Width="*" IsThreeState="{Binding #IsThreeStateCheckBox.IsChecked, Mode=OneWay}" />
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName}" Width="2*" FontSize="{Binding #FontSizeSlider.Value, Mode=OneWay}" x:DataType="local:Person" />
<DataGridTextColumn Header="Last" Binding="{Binding LastName}" Width="2*" FontSize="{Binding #FontSizeSlider.Value, Mode=OneWay}" x:DataType="local:Person" />
<DataGridCheckBoxColumn Header="Is Banned" Binding="{Binding IsBanned}" Width="*" IsThreeState="{Binding #IsThreeStateCheckBox.IsChecked, Mode=OneWay}" x:DataType="local:Person" />
<DataGridTemplateColumn Header="Age" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate DataType="local:Person">

2
samples/ControlCatalog/Pages/DateTimePickerPage.xaml

@ -2,7 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sys="clr-namespace:System;assembly=netstandard"
xmlns:sys="using:System"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="ControlCatalog.Pages.DateTimePickerPage">
<StackPanel Orientation="Vertical" Spacing="4" HorizontalAlignment="Stretch">

4
samples/ControlCatalog/Pages/ExpanderPage.xaml

@ -1,6 +1,8 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.ExpanderPage">
xmlns:viewModels="using:ControlCatalog.ViewModels"
x:Class="ControlCatalog.Pages.ExpanderPage"
x:DataType="viewModels:ExpanderPageViewModel">
<StackPanel Orientation="Vertical" Spacing="4">
<TextBlock Classes="h2">Expands to show nested content</TextBlock>

8
samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml

@ -1,6 +1,8 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.ItemsRepeaterPage">
xmlns:viewModels="using:ControlCatalog.ViewModels"
x:Class="ControlCatalog.Pages.ItemsRepeaterPage"
x:DataType="viewModels:ItemsRepeaterPageViewModel">
<UserControl.Styles>
<Style Selector="ItemsRepeater TextBlock.oddTemplate">
<Setter Property="Background" Value="Yellow" />
@ -21,12 +23,12 @@
</UserControl.Styles>
<UserControl.Resources>
<RecyclePool x:Key="RecyclePool" />
<DataTemplate x:Key="odd">
<DataTemplate x:Key="odd" x:DataType="viewModels:ItemsRepeaterPageViewModelItem">
<TextBlock Classes="oddTemplate"
Height="{Binding Height}"
Text="{Binding Text}"/>
</DataTemplate>
<DataTemplate x:Key="even">
<DataTemplate x:Key="even" x:DataType="viewModels:ItemsRepeaterPageViewModelItem">
<TextBlock Classes="evenTemplate"
Height="{Binding Height}"
Text="{Binding Text}"/>

4
samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml.cs

@ -44,7 +44,7 @@ namespace ControlCatalog.Pages
public void OnSelectTemplateKey(object sender, SelectTemplateEventArgs e)
{
if (e.DataContext is ItemsRepeaterPageViewModel.Item item)
if (e.DataContext is ItemsRepeaterPageViewModelItem item)
{
e.TemplateKey = (item.Index % 2 == 0) ? "even" : "odd";
}
@ -125,7 +125,7 @@ namespace ControlCatalog.Pages
private void RepeaterClick(object? sender, PointerPressedEventArgs e)
{
if ((e.Source as TextBlock)?.DataContext is ItemsRepeaterPageViewModel.Item item)
if ((e.Source as TextBlock)?.DataContext is ItemsRepeaterPageViewModelItem item)
{
_viewModel.SelectedItem = item;
_selectedIndex = _viewModel.Items.IndexOf(item);

4
samples/ControlCatalog/Pages/LabelsPage.axaml

@ -2,9 +2,11 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:models="using:ControlCatalog.Models"
mc:Ignorable="d" d:DesignWidth="400" d:DesignHeight="250"
x:Class="ControlCatalog.Pages.LabelsPage"
x:Name="_labelsPage">
x:Name="_labelsPage"
x:DataType="models:Person">
<UserControl.Styles>
<Style Selector="Label">
<Setter Property="VerticalAlignment" Value="Center"/>

4
samples/ControlCatalog/Pages/ListBoxPage.xaml

@ -1,6 +1,8 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.ListBoxPage">
xmlns:viewModels="using:ControlCatalog.ViewModels"
x:Class="ControlCatalog.Pages.ListBoxPage"
x:DataType="viewModels:ListBoxPageViewModel">
<DockPanel>
<DockPanel.Styles>
<Style Selector="ListBox ListBoxItem:nth-child(5n+3)">

8
samples/ControlCatalog/Pages/MenuPage.xaml

@ -1,6 +1,8 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.MenuPage">
xmlns:viewModels="using:ControlCatalog.ViewModels"
x:Class="ControlCatalog.Pages.MenuPage"
x:DataType="viewModels:MenuPageViewModel">
<StackPanel Orientation="Vertical" Spacing="4">
<TextBlock Classes="h2">Exported menu fallback</TextBlock>
<TextBlock>(Should be only visible on platforms without desktop-global menu bar)</TextBlock>
@ -45,7 +47,7 @@
<TextBlock Classes="h3" Margin="4 8">Dyanamically generated</TextBlock>
<Menu Items="{Binding MenuItems}">
<Menu.Styles>
<Style Selector="MenuItem">
<Style Selector="MenuItem" x:DataType="viewModels:MenuItemViewModel">
<Setter Property="Header" Value="{Binding Header}"/>
<Setter Property="Items" Value="{Binding Items}"/>
<Setter Property="Command" Value="{Binding Command}"/>
@ -68,7 +70,7 @@
<Separator/>
<MenuItem Header="_Recent" Items="{Binding RecentItems}">
<MenuItem.Styles>
<Style Selector="MenuItem">
<Style Selector="MenuItem" x:DataType="viewModels:MenuItemViewModel">
<Setter Property="Header" Value="{Binding Header}"/>
</Style>
</MenuItem.Styles>

4
samples/ControlCatalog/Pages/NotificationsPage.xaml

@ -1,6 +1,8 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.NotificationsPage">
xmlns:viewModels="using:ControlCatalog.ViewModels"
x:Class="ControlCatalog.Pages.NotificationsPage"
x:DataType="viewModels:NotificationViewModel">
<StackPanel Orientation="Vertical" Spacing="4" HorizontalAlignment="Left">
<Button Content="Show Standard Managed Notification" Command="{Binding ShowManagedNotificationCommand}" />
<Button Content="Show Custom Managed Notification" Command="{Binding ShowCustomManagedNotificationCommand}" />

11
samples/ControlCatalog/Pages/NumericUpDownPage.xaml

@ -1,8 +1,10 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=netstandard"
xmlns:converter="clr-namespace:ControlCatalog.Converter"
x:Class="ControlCatalog.Pages.NumericUpDownPage">
xmlns:sys="using:System"
xmlns:converter="using:ControlCatalog.Converter"
xmlns:pages="using:ControlCatalog.Pages"
x:Class="ControlCatalog.Pages.NumericUpDownPage"
x:DataType="pages:NumbersPageViewModel">
<StackPanel Orientation="Vertical" Spacing="4"
MaxWidth="800">
<TextBlock Margin="2" Classes="h2" TextWrapping="Wrap">Numeric up-down control provides a TextBox with button spinners that allow incrementing and decrementing numeric values by using the spinner buttons, keyboard up/down arrows, or mouse wheel.</TextBlock>
@ -43,7 +45,7 @@
VerticalAlignment="Center" Margin="2"/>
<TextBlock Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" Margin="2">CultureInfo:</TextBlock>
<ComboBox Grid.Row="2" Grid.Column="1" Items="{Binding Cultures}" SelectedItem="{Binding #upDown.CultureInfo}"
<ComboBox x:Name="CultureSelector" Grid.Row="2" Grid.Column="1" Items="{Binding Cultures}"
VerticalAlignment="Center" Margin="2"/>
<TextBlock Grid.Row="3" Grid.Column="0" VerticalAlignment="Center" Margin="2">Watermark:</TextBlock>
@ -77,6 +79,7 @@
<StackPanel Orientation="Vertical" Margin="10">
<Label Target="upDown" FontSize="14" FontWeight="Bold" VerticalAlignment="Center">Usage of decimal NumericUpDown:</Label>
<NumericUpDown Name="upDown" Minimum="0" Maximum="10" Increment="0.5"
NumberFormat="{Binding #CultureSelector.SelectedItem, Converter={x:Static pages:NumericUpDownPage.CultureConverter}}"
VerticalAlignment="Center" Value="{Binding DecimalValue}"
Watermark="Enter text" FormatString="{Binding SelectedFormat.Value}"/>
</StackPanel>

3
samples/ControlCatalog/Pages/NumericUpDownPage.xaml.cs

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using Avalonia.Controls;
using Avalonia.Data.Converters;
using Avalonia.Markup.Xaml;
using MiniMvvm;
@ -22,6 +23,8 @@ namespace ControlCatalog.Pages
AvaloniaXamlLoader.Load(this);
}
public static IValueConverter CultureConverter =
new FuncValueConverter<CultureInfo, NumberFormatInfo>(c => (c ?? CultureInfo.CurrentCulture).NumberFormat);
}
public class NumbersPageViewModel : ViewModelBase

2
samples/ControlCatalog/Pages/OpenGlPage.xaml

@ -1,7 +1,7 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.OpenGlPage"
xmlns:pages="clr-namespace:ControlCatalog.Pages">
xmlns:pages="using:ControlCatalog.Pages">
<Grid>
<pages:OpenGlPageControl x:Name="GL"/>
<StackPanel>

4
samples/ControlCatalog/Pages/PlatformInfoPage.xaml

@ -3,9 +3,11 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="using:ControlCatalog.ViewModels"
d:DesignHeight="800"
d:DesignWidth="400"
mc:Ignorable="d">
mc:Ignorable="d"
x:DataType="viewModels:PlatformInformationViewModel">
<StackPanel Spacing="20">
<TextBlock Text="{Binding PlatformInfo}" />

2
samples/ControlCatalog/Pages/ProgressBarPage.xaml

@ -31,7 +31,7 @@
<StackPanel Spacing="10">
<ProgressBar VerticalAlignment="Center" IsIndeterminate="True"
Minimum="{Binding #minimum.Value}" Maximum="{Binding #maximum.value}"/>
Minimum="{Binding #minimum.Value}" Maximum="{Binding #maximum.Value}"/>
<ProgressBar VerticalAlignment="Center" Value="5" Maximum="10" />
<ProgressBar VerticalAlignment="Center" Value="50" />
<ProgressBar VerticalAlignment="Center" Value="50" Minimum="25" Maximum="75" />

4
samples/ControlCatalog/Pages/ScrollViewerPage.xaml

@ -1,6 +1,8 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.ScrollViewerPage">
xmlns:pages="using:ControlCatalog.Pages"
x:Class="ControlCatalog.Pages.ScrollViewerPage"
x:DataType="pages:ScrollViewerPageViewModel">
<StackPanel Orientation="Vertical" Spacing="4">
<TextBlock Classes="h2">Allows for horizontal and vertical content scrolling.</TextBlock>

2
samples/ControlCatalog/Pages/SliderPage.xaml

@ -1,6 +1,6 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=netstandard"
xmlns:sys="using:System"
x:Class="ControlCatalog.Pages.SliderPage">
<StackPanel Orientation="Vertical" Spacing="4">
<TextBlock Classes="h2">A control that lets the user select from a range of values by moving a Thumb control along a Track.</TextBlock>

6
samples/ControlCatalog/Pages/SplitViewPage.xaml

@ -2,8 +2,10 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="using:ControlCatalog.ViewModels"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="ControlCatalog.Pages.SplitViewPage">
x:Class="ControlCatalog.Pages.SplitViewPage"
x:DataType="viewModels:SplitViewPageViewModel">
<Border>
@ -51,7 +53,7 @@
<!--{Binding SelectedItem.Tag, ElementName=PaneBackgroundSelector}-->
<SplitView Name="SplitView"
PanePlacement="{Binding PanePlacement}"
PaneBackground="{Binding SelectedItem.Tag, ElementName=PaneBackgroundSelector}"
PaneBackground="{Binding ((Control)SelectedItem).Tag, ElementName=PaneBackgroundSelector, FallbackValue={x:Null}}"
OpenPaneLength="{Binding Value, ElementName=OpenPaneLengthSlider}"
CompactPaneLength="{Binding Value, ElementName=CompactPaneLengthSlider}"
DisplayMode="{Binding CurrentDisplayMode}">

10
samples/ControlCatalog/Pages/TabControlPage.xaml

@ -1,7 +1,9 @@
<UserControl
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.TabControlPage"
xmlns="https://github.com/avaloniaui">
xmlns="https://github.com/avaloniaui"
xmlns:viewModels="using:ControlCatalog.ViewModels"
x:DataType="viewModels:TabControlPageViewModel">
<DockPanel>
<TextBlock
DockPanel.Dock="Top"
@ -53,14 +55,14 @@
Margin="0 16"
TabStripPlacement="{Binding TabPlacement}">
<TabControl.ItemTemplate>
<DataTemplate>
<DataTemplate x:DataType="viewModels:TabControlPageViewModelItem">
<TextBlock
Text="{Binding Header}">
</TextBlock>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<DataTemplate x:DataType="viewModels:TabControlPageViewModelItem">
<StackPanel Orientation="Vertical" Spacing="8">
<TextBlock Text="{Binding Text}"/>
<Image Source="{Binding Image}" Width="300"/>
@ -68,7 +70,7 @@
</DataTemplate>
</TabControl.ContentTemplate>
<TabControl.Styles>
<Style Selector="TabItem">
<Style Selector="TabItem" x:DataType="viewModels:TabControlPageViewModelItem">
<Setter Property="IsEnabled" Value="{Binding IsEnabled}"/>
</Style>
</TabControl.Styles>

32
samples/ControlCatalog/Pages/TabControlPage.xaml.cs

@ -5,8 +5,7 @@ using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
using MiniMvvm;
using ControlCatalog.ViewModels;
namespace ControlCatalog.Pages
{
@ -18,23 +17,23 @@ namespace ControlCatalog.Pages
{
InitializeComponent();
DataContext = new PageViewModel
DataContext = new TabControlPageViewModel
{
Tabs = new[]
{
new TabItemViewModel
new TabControlPageViewModelItem
{
Header = "Arch",
Text = "This is the first templated tab page.",
Image = LoadBitmap("avares://ControlCatalog/Assets/delicate-arch-896885_640.jpg"),
},
new TabItemViewModel
new TabControlPageViewModelItem
{
Header = "Leaf",
Text = "This is the second templated tab page.",
Image = LoadBitmap("avares://ControlCatalog/Assets/maple-leaf-888807_640.jpg"),
},
new TabItemViewModel
new TabControlPageViewModelItem
{
Header = "Disabled",
Text = "You should not see this.",
@ -55,26 +54,5 @@ namespace ControlCatalog.Pages
var assets = AvaloniaLocator.Current!.GetService<IAssetLoader>()!;
return new Bitmap(assets.Open(new Uri(uri)));
}
private class PageViewModel : ViewModelBase
{
private Dock _tabPlacement;
public TabItemViewModel[]? Tabs { get; set; }
public Dock TabPlacement
{
get { return _tabPlacement; }
set { this.RaiseAndSetIfChanged(ref _tabPlacement, value); }
}
}
private class TabItemViewModel
{
public string? Header { get; set; }
public string? Text { get; set; }
public IBitmap? Image { get; set; }
public bool IsEnabled { get; set; } = true;
}
}
}

10
samples/ControlCatalog/Pages/TabStripPage.xaml

@ -1,6 +1,8 @@
<UserControl xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.TabStripPage"
xmlns="https://github.com/avaloniaui">
xmlns="https://github.com/avaloniaui"
xmlns:viewModels="using:ControlCatalog.ViewModels"
x:DataType="viewModels:TabControlPageViewModel">
<StackPanel Orientation="Vertical" Spacing="4">
<TextBlock Classes="h2">A control which displays a selectable strip of tabs</TextBlock>
@ -16,14 +18,14 @@
<Separator Margin="0 16"/>
<TextBlock Classes="h1">Dynamically generated</TextBlock>
<TabStrip Items="{Binding}">
<TabStrip Items="{Binding Tabs}">
<TabStrip.Styles>
<Style Selector="TabStripItem">
<Style Selector="TabStripItem" x:DataType="viewModels:TabControlPageViewModelItem">
<Setter Property="IsEnabled" Value="{Binding IsEnabled}"/>
</Style>
</TabStrip.Styles>
<TabStrip.ItemTemplate>
<DataTemplate>
<DataTemplate x:DataType="viewModels:TabControlPageViewModelItem">
<TextBlock Text="{Binding Header}"/>
</DataTemplate>
</TabStrip.ItemTemplate>

40
samples/ControlCatalog/Pages/TabStripPage.xaml.cs

@ -1,9 +1,6 @@
using System;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
using ControlCatalog.ViewModels;
namespace ControlCatalog.Pages
{
@ -13,21 +10,24 @@ namespace ControlCatalog.Pages
{
InitializeComponent();
DataContext = new[]
DataContext = new TabControlPageViewModel
{
new TabStripItemViewModel
Tabs = new []
{
Header = "Item 1",
},
new TabStripItemViewModel
{
Header = "Item 2",
},
new TabStripItemViewModel
{
Header = "Disabled",
IsEnabled = false,
},
new TabControlPageViewModelItem()
{
Header = "Item 1",
},
new TabControlPageViewModelItem
{
Header = "Item 2",
},
new TabControlPageViewModelItem
{
Header = "Disabled",
IsEnabled = false,
},
}
};
}
@ -35,11 +35,5 @@ namespace ControlCatalog.Pages
{
AvaloniaXamlLoader.Load(this);
}
private class TabStripItemViewModel
{
public string? Header { get; set; }
public bool IsEnabled { get; set; } = true;
}
}
}

2
samples/ControlCatalog/Pages/TextBoxPage.xaml

@ -1,7 +1,7 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.TextBoxPage"
xmlns:sys="clr-namespace:System;assembly=netstandard">
xmlns:sys="using:System">
<StackPanel Orientation="Vertical" Spacing="4">
<Label Classes="h2">A control into which the user can input text</Label>

3
samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml

@ -3,11 +3,10 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="using:ControlCatalog.ViewModels"
xmlns:converter="clr-namespace:ControlCatalog.Converter"
xmlns:converter="using:ControlCatalog.Converter"
xmlns:system="using:System"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:DataType="vm:TransitioningContentControlPageViewModel"
x:CompileBindings="True"
x:Class="ControlCatalog.Pages.TransitioningContentControlPage">
<UserControl.DataContext>

4
samples/ControlCatalog/Pages/TreeViewPage.xaml

@ -1,6 +1,8 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.TreeViewPage">
xmlns:viewModels="using:ControlCatalog.ViewModels"
x:Class="ControlCatalog.Pages.TreeViewPage"
x:DataType="viewModels:TreeViewPageViewModel">
<StackPanel Orientation="Vertical" Spacing="4">
<TextBlock Classes="h2">Displays a hierachical tree of data.</TextBlock>

2
samples/ControlCatalog/Pages/ViewboxPage.xaml

@ -1,6 +1,6 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:collections="clr-namespace:System.Collections;assembly=netstandard"
xmlns:collections="using:System.Collections"
x:Class="ControlCatalog.Pages.ViewboxPage">
<Grid RowDefinitions="Auto,*,*">

4
samples/ControlCatalog/Pages/WindowCustomizationsPage.xaml

@ -2,8 +2,10 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="using:ControlCatalog.ViewModels"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="ControlCatalog.Pages.WindowCustomizationsPage">
x:Class="ControlCatalog.Pages.WindowCustomizationsPage"
x:DataType="viewModels:MainWindowViewModel">
<StackPanel Spacing="10" Margin="25">
<CheckBox Content="Extend Client Area to Decorations" IsChecked="{Binding ExtendClientAreaEnabled}" />
<CheckBox Content="Title Bar" IsChecked="{Binding SystemTitleBarEnabled}" />

20
samples/ControlCatalog/ViewModels/CursorPageViewModel.cs

@ -27,18 +27,18 @@ namespace ControlCatalog.ViewModels
public IEnumerable<StandardCursorModel> StandardCursors { get; }
public Cursor CustomCursor { get; }
public class StandardCursorModel
}
public class StandardCursorModel
{
public StandardCursorModel(StandardCursorType type)
{
public StandardCursorModel(StandardCursorType type)
{
Type = type;
Cursor = new Cursor(type);
}
Type = type;
Cursor = new Cursor(type);
}
public StandardCursorType Type { get; }
public StandardCursorType Type { get; }
public Cursor Cursor { get; }
}
public Cursor Cursor { get; }
}
}

44
samples/ControlCatalog/ViewModels/ItemsRepeaterPageViewModel.cs

@ -10,25 +10,25 @@ namespace ControlCatalog.ViewModels
{
private int _newItemIndex = 1;
private int _newGenerationIndex = 0;
private ObservableCollection<Item> _items;
private ObservableCollection<ItemsRepeaterPageViewModelItem> _items;
public ItemsRepeaterPageViewModel()
{
_items = CreateItems();
}
public ObservableCollection<Item> Items
public ObservableCollection<ItemsRepeaterPageViewModelItem> Items
{
get => _items;
set => this.RaiseAndSetIfChanged(ref _items, value);
}
public Item? SelectedItem { get; set; }
public ItemsRepeaterPageViewModelItem? SelectedItem { get; set; }
public void AddItem()
{
var index = SelectedItem != null ? Items.IndexOf(SelectedItem) : -1;
Items.Insert(index + 1, new Item(index + 1, $"New Item {_newItemIndex++}"));
Items.Insert(index + 1, new ItemsRepeaterPageViewModelItem(index + 1, $"New Item {_newItemIndex++}"));
}
public void RemoveItem()
@ -59,33 +59,33 @@ namespace ControlCatalog.ViewModels
Items = CreateItems();
}
private ObservableCollection<Item> CreateItems()
private ObservableCollection<ItemsRepeaterPageViewModelItem> CreateItems()
{
var suffix = _newGenerationIndex == 0 ? string.Empty : $"[{_newGenerationIndex.ToString()}]";
_newGenerationIndex++;
return new ObservableCollection<Item>(
Enumerable.Range(1, 100000).Select(i => new Item(i, $"Item {i.ToString()} {suffix}")));
return new ObservableCollection<ItemsRepeaterPageViewModelItem>(
Enumerable.Range(1, 100000).Select(i => new ItemsRepeaterPageViewModelItem(i, $"Item {i.ToString()} {suffix}")));
}
}
public class ItemsRepeaterPageViewModelItem : ViewModelBase
{
private double _height = double.NaN;
public class Item : ViewModelBase
public ItemsRepeaterPageViewModelItem(int index, string text)
{
private double _height = double.NaN;
public Item(int index, string text)
{
Index = index;
Text = text;
}
public int Index { get; }
public string Text { get; }
Index = index;
Text = text;
}
public int Index { get; }
public string Text { get; }
public double Height
{
get => _height;
set => this.RaiseAndSetIfChanged(ref _height, value);
}
public double Height
{
get => _height;
set => this.RaiseAndSetIfChanged(ref _height, value);
}
}
}

26
samples/ControlCatalog/ViewModels/TabControlPageViewModel.cs

@ -0,0 +1,26 @@
using Avalonia.Controls;
using Avalonia.Media.Imaging;
using MiniMvvm;
namespace ControlCatalog.ViewModels;
public class TabControlPageViewModel : ViewModelBase
{
private Dock _tabPlacement;
public TabControlPageViewModelItem[]? Tabs { get; set; }
public Dock TabPlacement
{
get { return _tabPlacement; }
set { this.RaiseAndSetIfChanged(ref _tabPlacement, value); }
}
}
public class TabControlPageViewModelItem
{
public string? Header { get; set; }
public string? Text { get; set; }
public IBitmap? Image { get; set; }
public bool IsEnabled { get; set; } = true;
}

4
samples/ControlCatalog/Views/CustomNotificationView.xaml

@ -1,6 +1,8 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Views.CustomNotificationView">
xmlns:viewModels="using:ControlCatalog.ViewModels"
x:Class="ControlCatalog.Views.CustomNotificationView"
x:DataType="viewModels:NotificationViewModel">
<Border Padding="12" MinHeight="20" Background="DodgerBlue">
<Grid ColumnDefinitions="Auto,*">
<Panel Margin="0,0,12,0" Width="25" Height="25" VerticalAlignment="Top">

4
samples/IntegrationTestApp/MainWindow.axaml

@ -2,10 +2,12 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:integrationTestApp="using:IntegrationTestApp"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="IntegrationTestApp.MainWindow"
Name="MainWindow"
Title="IntegrationTestApp">
Title="IntegrationTestApp"
x:DataType="integrationTestApp:MainWindow">
<NativeMenu.Menu>
<NativeMenu>
<NativeMenuItem Header="File">

1
samples/IntegrationTestApp/ShowWindowTest.axaml

@ -2,6 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="IntegrationTestApp.ShowWindowTest"
Name="SecondaryWindow"
x:DataType="Window"
Title="Show Window Test">
<Grid ColumnDefinitions="Auto,Auto" RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto">
<Label Grid.Column="0" Grid.Row="1">Client Size</Label>

1
samples/MobileSandbox/App.xaml

@ -1,6 +1,5 @@
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:CompileBindings="True"
Name="Mobile Sandbox"
x:Class="MobileSandbox.App">
<Application.Styles>

4
samples/MobileSandbox/MainView.xaml

@ -1,6 +1,8 @@
<UserControl x:Class="MobileSandbox.MainView"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mobileSandbox="using:MobileSandbox"
x:DataType="mobileSandbox:MainView">
<StackPanel Margin="100 50" Spacing="50">
<TextBlock Text="Login" Foreground="White" />
<TextBox Watermark="Text" />

8
samples/MobileSandbox/Views/CustomNotificationView.xaml

@ -7,12 +7,12 @@
<TextBlock Text="&#xE115;" FontFamily="Segoe UI Symbol" FontSize="20" TextAlignment="Center" VerticalAlignment="Center"/>
</Panel>
<DockPanel Grid.Column="1">
<TextBlock DockPanel.Dock="Top" Text="{Binding Title}" FontWeight="Medium" />
<TextBlock DockPanel.Dock="Top" Text="{ReflectionBinding Title}" FontWeight="Medium" />
<StackPanel Spacing="20" DockPanel.Dock="Bottom" Margin="0,8,0,0" Orientation="Horizontal">
<Button Content="No" DockPanel.Dock="Right" NotificationCard.CloseOnClick="True" Command="{Binding NoCommand}" Margin="0,0,8,0" />
<Button Content="Yes" DockPanel.Dock="Right" NotificationCard.CloseOnClick="True" Command="{Binding YesCommand}" />
<Button Content="No" DockPanel.Dock="Right" NotificationCard.CloseOnClick="True" Command="{ReflectionBinding NoCommand}" Margin="0,0,8,0" />
<Button Content="Yes" DockPanel.Dock="Right" NotificationCard.CloseOnClick="True" Command="{ReflectionBinding YesCommand}" />
</StackPanel>
<TextBlock Text="{Binding Message}" TextWrapping="Wrap" Opacity=".8" Margin="0,8,0,0"/>
<TextBlock Text="{ReflectionBinding Message}" TextWrapping="Wrap" Opacity=".8" Margin="0,8,0,0"/>
</DockPanel>
</Grid>
</Border>

6
samples/RenderDemo/MainWindow.xaml

@ -1,9 +1,11 @@
<Window x:Class="RenderDemo.MainWindow"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:ControlSamples;assembly=ControlSamples"
xmlns:pages="clr-namespace:RenderDemo.Pages"
xmlns:controls="using:ControlSamples"
xmlns:pages="using:RenderDemo.Pages"
xmlns:viewModels="using:RenderDemo.ViewModels"
Title="AvaloniaUI Rendering Test"
x:DataType="viewModels:MainWindowViewModel"
Width="{Binding Width, Mode=TwoWay}"
Height="{Binding Height, Mode=TwoWay}">
<controls:HamburgerMenu ExpandedModeThresholdWidth="760">

4
samples/RenderDemo/Pages/AnimationsPage.xaml

@ -1,7 +1,9 @@
<UserControl
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:viewModels="using:RenderDemo.ViewModels"
x:Class="RenderDemo.Pages.AnimationsPage"
x:DataType="viewModels:AnimationsPageViewModel"
MaxWidth="600">
<UserControl.Styles>
<Styles>

2
samples/RenderDemo/Pages/CustomAnimatorPage.xaml

@ -1,7 +1,7 @@
<UserControl
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:pages="clr-namespace:RenderDemo.Pages"
xmlns:pages="using:RenderDemo.Pages"
x:Class="RenderDemo.Pages.CustomAnimatorPage"
MaxWidth="600">
<Grid>

2
samples/RenderDemo/Pages/GlyphRunPage.xaml

@ -2,7 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:RenderDemo.Pages"
xmlns:local="using:RenderDemo.Pages"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="RenderDemo.Pages.GlyphRunPage">
<Grid

2
samples/RenderDemo/Pages/LineBoundsPage.xaml

@ -3,7 +3,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
xmlns:controls="clr-namespace:RenderDemo.Controls"
xmlns:controls="using:RenderDemo.Controls"
x:Class="RenderDemo.Pages.LineBoundsPage">
<controls:LineBoundsDemoControl />
</UserControl>

4
samples/RenderDemo/Pages/Transform3DPage.axaml

@ -2,8 +2,10 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="using:RenderDemo.ViewModels"
mc:Ignorable="d" d:DesignWidth="600" d:DesignHeight="700"
x:Class="RenderDemo.Pages.Transform3DPage">
x:Class="RenderDemo.Pages.Transform3DPage"
x:DataType="viewModels:Transform3DPageViewModel">
<UserControl.Styles>
<Styles>
<Styles.Resources>

2
samples/RenderDemo/Pages/TransitionsPage.xaml

@ -1,7 +1,9 @@
<UserControl
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:viewModels="using:RenderDemo.ViewModels"
x:Class="RenderDemo.Pages.TransitionsPage"
x:DataType="viewModels:AnimationsPageViewModel"
MaxWidth="600">
<UserControl.Styles>
<Styles>

6
samples/SampleControls/HamburgerMenu/HamburgerMenu.xaml

@ -194,7 +194,7 @@
VerticalAlignment="Center"
Classes="h1"
Margin="{StaticResource HeaderMarginExpandedPane}"
Text="{Binding $parent[TabControl].SelectedItem.Header, FallbackValue=''}">
Text="{Binding $parent[TabControl].SelectedItem.(TabItem.Header), FallbackValue=''}">
<TextBlock.Transitions>
<Transitions>
<ThicknessTransition Easing="{StaticResource SplitViewPaneAnimationEasing}"
@ -250,10 +250,10 @@
<Setter Property="PaneBackground" Value="{TemplateBinding PaneBackground}" />
</Style>
<Style Selector="^ /template/ SplitView[DisplayMode=Overlay]">
<Setter Property="Background" Value="{Binding $parent[TabControl].ContentBackground}" />
<Setter Property="Background" Value="{Binding $parent[catalog:HamburgerMenu].ContentBackground}" />
</Style>
<Style Selector="^ /template/ SplitView[DisplayMode=Inline] Border#BackgroundBorder">
<Setter Property="Background" Value="{Binding $parent[TabControl].ContentBackground}" />
<Setter Property="Background" Value="{Binding $parent[catalog:HamburgerMenu].ContentBackground}" />
<Setter Property="BoxShadow" Value="{StaticResource NavigationContentShadow}" />
</Style>
<Style Selector="^ /template/ SplitView[DisplayMode=Inline][IsPaneOpen=True] Border#BackgroundBorder">

4
samples/VirtualizationDemo/MainWindow.xaml

@ -1,9 +1,11 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:viewModels="using:VirtualizationDemo.ViewModels"
x:Class="VirtualizationDemo.MainWindow"
Title="AvaloniaUI Virtualization Test"
Width="800"
Height="600">
Height="600"
x:DataType="viewModels:MainWindowViewModel">
<DockPanel LastChildFill="True" Margin="16">
<StackPanel DockPanel.Dock="Right"
Margin="16 0 0 0"

5
src/Avalonia.Controls.ColorPicker/Themes/Fluent/ColorPicker.xaml

@ -1,10 +1,7 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Avalonia.Controls"
xmlns:converters="using:Avalonia.Controls.Converters"
xmlns:primitives="using:Avalonia.Controls.Primitives"
xmlns:pc="clr-namespace:Avalonia.Controls.Primitives.Converters;assembly=Avalonia.Controls.ColorPicker"
x:CompileBindings="True">
xmlns:primitives="using:Avalonia.Controls.Primitives">
<ResourceDictionary.MergedDictionaries>
<ResourceInclude Source="avares://Avalonia.Controls.ColorPicker/Themes/Fluent/ColorView.xaml" />

3
src/Avalonia.Controls.ColorPicker/Themes/Fluent/ColorPreviewer.xaml

@ -1,7 +1,6 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:pc="using:Avalonia.Controls.Primitives.Converters"
x:CompileBindings="True">
xmlns:pc="using:Avalonia.Controls.Primitives.Converters">
<pc:AccentColorConverter x:Key="AccentColorConverter" />
<x:Double x:Key="ColorPreviewerAccentSectionWidth">80</x:Double>

3
src/Avalonia.Controls.ColorPicker/Themes/Fluent/ColorSlider.xaml

@ -1,6 +1,5 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:CompileBindings="True">
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTheme x:Key="ColorSliderThumbTheme"
TargetType="Thumb">

3
src/Avalonia.Controls.ColorPicker/Themes/Fluent/ColorSpectrum.xaml

@ -1,7 +1,6 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Avalonia.Controls"
x:CompileBindings="True">
xmlns:controls="using:Avalonia.Controls">
<ControlTheme x:Key="{x:Type ColorSpectrum}"
TargetType="ColorSpectrum">

5
src/Avalonia.Controls.ColorPicker/Themes/Fluent/ColorView.xaml

@ -3,9 +3,8 @@
xmlns:controls="using:Avalonia.Controls"
xmlns:converters="using:Avalonia.Controls.Converters"
xmlns:primitives="using:Avalonia.Controls.Primitives"
xmlns:pc="clr-namespace:Avalonia.Controls.Primitives.Converters;assembly=Avalonia.Controls.ColorPicker"
xmlns:globalization="clr-namespace:System.Globalization;assembly=mscorlib"
x:CompileBindings="True">
xmlns:pc="using:Avalonia.Controls.Primitives.Converters"
xmlns:globalization="using:System.Globalization">
<pc:ContrastBrushConverter x:Key="ContrastBrushConverter" />
<converters:ColorToDisplayNameConverter x:Key="ColorToDisplayNameConverter" />

3
src/Avalonia.Controls.ColorPicker/Themes/Fluent/Fluent.xaml

@ -1,7 +1,6 @@
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converters="using:Avalonia.Controls.Converters"
x:CompileBindings="True">
xmlns:converters="using:Avalonia.Controls.Converters">
<Styles.Resources>
<ResourceDictionary>

5
src/Avalonia.Controls.ColorPicker/Themes/Simple/ColorPicker.xaml

@ -1,10 +1,7 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Avalonia.Controls"
xmlns:converters="using:Avalonia.Controls.Converters"
xmlns:primitives="using:Avalonia.Controls.Primitives"
xmlns:pc="clr-namespace:Avalonia.Controls.Primitives.Converters;assembly=Avalonia.Controls.ColorPicker"
x:CompileBindings="True">
xmlns:primitives="using:Avalonia.Controls.Primitives">
<ResourceDictionary.MergedDictionaries>
<ResourceInclude Source="avares://Avalonia.Controls.ColorPicker/Themes/Simple/ColorView.xaml" />

3
src/Avalonia.Controls.ColorPicker/Themes/Simple/ColorPreviewer.xaml

@ -1,7 +1,6 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:pc="using:Avalonia.Controls.Primitives.Converters"
x:CompileBindings="True">
xmlns:pc="using:Avalonia.Controls.Primitives.Converters">
<pc:AccentColorConverter x:Key="AccentColorConverter" />
<x:Double x:Key="ColorPreviewerAccentSectionWidth">80</x:Double>

3
src/Avalonia.Controls.ColorPicker/Themes/Simple/ColorSlider.xaml

@ -1,6 +1,5 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:CompileBindings="True">
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTheme x:Key="ColorSliderThumbTheme"
TargetType="Thumb">

3
src/Avalonia.Controls.ColorPicker/Themes/Simple/ColorSpectrum.xaml

@ -1,7 +1,6 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Avalonia.Controls"
x:CompileBindings="True">
xmlns:controls="using:Avalonia.Controls">
<ControlTheme x:Key="{x:Type ColorSpectrum}"
TargetType="ColorSpectrum">

5
src/Avalonia.Controls.ColorPicker/Themes/Simple/ColorView.xaml

@ -3,9 +3,8 @@
xmlns:controls="using:Avalonia.Controls"
xmlns:converters="using:Avalonia.Controls.Converters"
xmlns:primitives="using:Avalonia.Controls.Primitives"
xmlns:pc="clr-namespace:Avalonia.Controls.Primitives.Converters;assembly=Avalonia.Controls.ColorPicker"
xmlns:globalization="clr-namespace:System.Globalization;assembly=mscorlib"
x:CompileBindings="True">
xmlns:pc="using:Avalonia.Controls.Primitives.Converters"
xmlns:globalization="using:System.Globalization">
<pc:ContrastBrushConverter x:Key="ContrastBrushConverter" />
<converters:ColorToDisplayNameConverter x:Key="ColorToDisplayNameConverter" />

3
src/Avalonia.Controls.ColorPicker/Themes/Simple/Simple.xaml

@ -1,7 +1,6 @@
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converters="using:Avalonia.Controls.Converters"
x:CompileBindings="True">
xmlns:converters="using:Avalonia.Controls.Converters">
<Styles.Resources>
<ResourceDictionary>

6
src/Avalonia.Controls.DataGrid/Themes/Fluent.xaml

@ -1,5 +1,5 @@
<Styles xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:CompileBindings="True">
xmlns:collections="using:Avalonia.Collections">
<Styles.Resources>
<x:Double x:Key="ListAccentLowOpacity">0.6</x:Double>
<x:Double x:Key="ListAccentMediumOpacity">0.8</x:Double>
@ -402,7 +402,7 @@
<Setter Property="FontSize" Value="15" />
<Setter Property="MinHeight" Value="32" />
<Setter Property="Template">
<ControlTemplate>
<ControlTemplate x:DataType="collections:DataGridCollectionViewGroup">
<DataGridFrozenGrid Name="PART_Root"
Background="{TemplateBinding Background}"
MinHeight="{TemplateBinding MinHeight}"
@ -433,7 +433,7 @@
IsVisible="{TemplateBinding IsPropertyNameVisible}"
Foreground="{TemplateBinding Foreground}" />
<TextBlock Margin="4,0,0,0"
Text="{ReflectionBinding Key}"
Text="{Binding Key}"
Foreground="{TemplateBinding Foreground}" />
<TextBlock Name="PART_ItemCountElement"
Margin="4,0,0,0"

5
src/Avalonia.Controls.DataGrid/Themes/Simple.xaml

@ -1,5 +1,6 @@
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:collections="using:Avalonia.Collections">
<Styles.Resources>
<Thickness x:Key="DataGridTextColumnCellTextBlockMargin">4</Thickness>
<ControlTheme x:Key="DataGridCellTextBlockTheme"
@ -253,7 +254,7 @@
<Setter Property="Background" Value="{DynamicResource ThemeControlMidHighBrush}" />
<Setter Property="Height" Value="20" />
<Setter Property="Template">
<ControlTemplate>
<ControlTemplate x:DataType="collections:DataGridCollectionViewGroup">
<DataGridFrozenGrid Name="Root"
ColumnDefinitions="Auto,Auto,Auto,Auto"
RowDefinitions="Auto,*,Auto">

1
src/Avalonia.Diagnostics/Diagnostics/Controls/FilterTextBox.axaml

@ -1,7 +1,6 @@
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Avalonia.Diagnostics.Controls"
x:CompileBindings="True"
x:DataType="controls:FilterTextBox">
<Design.PreviewWith>

2
src/Avalonia.Diagnostics/Diagnostics/Controls/ThicknessEditor.axaml

@ -1,6 +1,6 @@
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:Avalonia.Diagnostics.Controls">
xmlns:controls="using:Avalonia.Diagnostics.Controls">
<Styles.Resources>
<SolidColorBrush x:Key="HighlightBorderBrush" Color="CornflowerBlue" />

4
src/Avalonia.Diagnostics/Diagnostics/ViewModels/MainViewModel.cs

@ -292,7 +292,7 @@ namespace Avalonia.Diagnostics.ViewModels
[DependsOn(nameof(TreePageViewModel.SelectedNode))]
[DependsOn(nameof(Content))]
bool CanShot(object? parameter)
public bool CanShot(object? parameter)
{
return Content is TreePageViewModel tree
&& tree.SelectedNode != null
@ -300,7 +300,7 @@ namespace Avalonia.Diagnostics.ViewModels
&& visual.VisualRoot != null;
}
async void Shot(object? parameter)
public async void Shot(object? parameter)
{
if ((Content as TreePageViewModel)?.SelectedNode?.Visual is IControl control
&& _screenshotHandler is { }

4
src/Avalonia.Diagnostics/Diagnostics/Views/ConsoleView.xaml

@ -1,6 +1,8 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Avalonia.Diagnostics.Views.ConsoleView">
xmlns:viewModels="using:Avalonia.Diagnostics.ViewModels"
x:Class="Avalonia.Diagnostics.Views.ConsoleView"
x:DataType="viewModels:ConsoleViewModel">
<UserControl.Styles>
<Style Selector="TextBox.console">
<Setter Property="FontFamily" Value="/Assets/Fonts/SourceSansPro-Regular.ttf"/>

28
src/Avalonia.Diagnostics/Diagnostics/Views/ControlDetailsView.xaml

@ -1,12 +1,13 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:conv="clr-namespace:Avalonia.Diagnostics.Converters"
xmlns:local="clr-namespace:Avalonia.Diagnostics.Views"
xmlns:controls="clr-namespace:Avalonia.Diagnostics.Controls"
xmlns:vm="clr-namespace:Avalonia.Diagnostics.ViewModels"
xmlns:conv="using:Avalonia.Diagnostics.Converters"
xmlns:local="using:Avalonia.Diagnostics.Views"
xmlns:controls="using:Avalonia.Diagnostics.Controls"
xmlns:vm="using:Avalonia.Diagnostics.ViewModels"
xmlns:lb="using:Avalonia.Diagnostics.Behaviors"
x:Class="Avalonia.Diagnostics.Views.ControlDetailsView"
x:Name="Main">
x:Name="Main"
x:DataType="vm:ControlDetailsViewModel">
<UserControl.Resources>
<conv:BoolToOpacityConverter x:Key="BoolToOpacity" Opacity="0.6"/>
@ -58,21 +59,24 @@
CanUserResizeColumns="true"
DoubleTapped="PropertiesGrid_OnDoubleTapped">
<DataGrid.Columns>
<DataGridTextColumn Header="Property" Binding="{Binding Name}" IsReadOnly="True" />
<DataGridTextColumn Header="Value" Binding="{Binding Value}" />
<DataGridTextColumn Header="Property" Binding="{Binding Name}" IsReadOnly="True" x:DataType="vm:PropertyViewModel" />
<DataGridTextColumn Header="Value" Binding="{Binding Value}" x:DataType="vm:PropertyViewModel" />
<DataGridTextColumn Header="Type" Binding="{Binding Type}"
IsReadOnly="True"
IsVisible="{Binding !$parent[UserControl;2].DataContext.ShowDetailsPropertyType}"
IsVisible="{Binding !$parent[UserControl;2].((vm:MainViewModel)DataContext).ShowDetailsPropertyType}"
x:DataType="vm:PropertyViewModel"
/>
<DataGridTextColumn Header="Assigned Type" Binding="{Binding AssignedType, Converter={StaticResource GetTypeName}}"
IsReadOnly="True"
IsVisible="{Binding $parent[UserControl;2].DataContext.ShowDetailsPropertyType}"
IsVisible="{Binding $parent[UserControl;2].((vm:MainViewModel)DataContext).ShowDetailsPropertyType}"
x:DataType="vm:PropertyViewModel"
/>
<DataGridTextColumn Header="Property Type" Binding="{Binding PropertyType, Converter={StaticResource GetTypeName}}"
IsReadOnly="True"
IsVisible="{Binding $parent[UserControl;2].DataContext.ShowDetailsPropertyType}"
IsVisible="{Binding $parent[UserControl;2].((vm:MainViewModel)DataContext).ShowDetailsPropertyType}"
x:DataType="vm:PropertyViewModel"
/>
<DataGridTextColumn Header="Priority" Binding="{Binding Priority}" IsReadOnly="True" />
<DataGridTextColumn Header="Priority" Binding="{Binding Priority}" IsReadOnly="True" x:DataType="vm:PropertyViewModel" />
</DataGrid.Columns>
<DataGrid.Styles>
@ -124,7 +128,7 @@
<MultiBinding Converter="{x:Static BoolConverters.And}">
<MultiBinding Converter="{x:Static BoolConverters.Or}" >
<Binding Path="IsActive" />
<Binding Path="#Main.DataContext.ShowInactiveStyles" />
<Binding Path="#Main.((vm:ControlDetailsViewModel)DataContext).ShowInactiveStyles" />
</MultiBinding>
<Binding Path="IsVisible" />
</MultiBinding>

10
src/Avalonia.Diagnostics/Diagnostics/Views/EventsPageView.xaml

@ -1,10 +1,10 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:Avalonia.Diagnostics.ViewModels"
xmlns:conv="clr-namespace:Avalonia.Diagnostics.Converters"
xmlns:controls="clr-namespace:Avalonia.Diagnostics.Controls"
xmlns:vm="using:Avalonia.Diagnostics.ViewModels"
xmlns:controls="using:Avalonia.Diagnostics.Controls"
x:Class="Avalonia.Diagnostics.Views.EventsPageView"
Margin="2">
Margin="2"
x:DataType="vm:EventsPageViewModel">
<UserControl.Styles>
<Style Selector="TextBlock.nav" >
<Setter Property="TextDecorations">
@ -52,7 +52,7 @@
</TreeDataTemplate>
</TreeView.DataTemplates>
<TreeView.Styles>
<Style Selector="TreeViewItem">
<Style Selector="TreeViewItem" x:DataType="vm:EventTreeNodeBase">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsVisible" Value="{Binding IsVisible}" />
</Style>

7
src/Avalonia.Diagnostics/Diagnostics/Views/LayoutExplorerView.axaml

@ -1,9 +1,10 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Avalonia.Diagnostics.Views.LayoutExplorerView"
xmlns:local="clr-namespace:Avalonia.Diagnostics.Views"
xmlns:controls="clr-namespace:Avalonia.Diagnostics.Controls"
xmlns:converters="clr-namespace:Avalonia.Diagnostics.Converters">
xmlns:controls="using:Avalonia.Diagnostics.Controls"
xmlns:converters="using:Avalonia.Diagnostics.Converters"
xmlns:viewModels="using:Avalonia.Diagnostics.ViewModels"
x:DataType="viewModels:ControlLayoutViewModel">
<UserControl.Resources>
<SolidColorBrush x:Key="SizeGuidelineBrush" Color="#333333" />

8
src/Avalonia.Diagnostics/Diagnostics/Views/MainView.xaml

@ -1,7 +1,9 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:views="clr-namespace:Avalonia.Diagnostics.Views"
x:Class="Avalonia.Diagnostics.Views.MainView">
xmlns:views="using:Avalonia.Diagnostics.Views"
xmlns:viewModels="using:Avalonia.Diagnostics.ViewModels"
x:Class="Avalonia.Diagnostics.Views.MainView"
x:DataType="viewModels:MainViewModel">
<Grid Name="rootGrid" RowDefinitions="Auto,Auto,*,Auto,0,Auto">
<Menu>
<MenuItem Header="_File">
@ -38,7 +40,7 @@
</MenuItem>
</MenuItem>
<MenuItem Header="_View">
<MenuItem Header="_Console" Command="{Binding $parent[UserControl].ToggleConsole}">
<MenuItem Header="_Console" Command="{Binding $parent[views:MainView].ToggleConsole}">
<MenuItem.Icon>
<CheckBox BorderThickness="0"
IsChecked="{Binding Console.IsVisible}"

8
src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml

@ -1,9 +1,11 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:views="clr-namespace:Avalonia.Diagnostics.Views"
xmlns:diag="clr-namespace:Avalonia.Diagnostics"
xmlns:views="using:Avalonia.Diagnostics.Views"
xmlns:diag="using:Avalonia.Diagnostics"
xmlns:viewModels="using:Avalonia.Diagnostics.ViewModels"
Title="Avalonia DevTools"
x:Class="Avalonia.Diagnostics.Views.MainWindow">
x:Class="Avalonia.Diagnostics.Views.MainWindow"
x:DataType="viewModels:MainViewModel">
<Window.DataTemplates>
<diag:ViewLocator/>
</Window.DataTemplates>

7
src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml

@ -1,7 +1,8 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:Avalonia.Diagnostics.ViewModels"
x:Class="Avalonia.Diagnostics.Views.TreePageView">
xmlns:vm="using:Avalonia.Diagnostics.ViewModels"
x:Class="Avalonia.Diagnostics.Views.TreePageView"
x:DataType="vm:TreePageViewModel">
<Grid ColumnDefinitions="0.35*,4,0.65*">
<TreeView Name="tree"
BorderThickness="0"
@ -18,7 +19,7 @@
</TreeDataTemplate>
</TreeView.DataTemplates>
<TreeView.Styles>
<Style Selector="TreeViewItem">
<Style Selector="TreeViewItem" x:DataType="vm:TreeNode">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"/>
<Setter Property="Background" Value="Transparent" />
</Style>

4
src/Avalonia.Dialogs/AboutAvaloniaDialog.xaml

@ -1,5 +1,6 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dialogs="using:Avalonia.Dialogs"
MaxWidth="400"
MaxHeight="475"
MinWidth="430"
@ -7,7 +8,8 @@
Title="About Avalonia"
Background="Purple"
FontFamily="/Assets/Roboto-Light.ttf#Roboto"
x:Class="Avalonia.Dialogs.AboutAvaloniaDialog">
x:Class="Avalonia.Dialogs.AboutAvaloniaDialog"
x:DataType="dialogs:AboutAvaloniaDialog">
<Window.Styles>
<Style>
<Style.Resources>

7
src/Avalonia.Dialogs/InternalViewModelBase.cs

@ -1,15 +1,13 @@
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using JetBrains.Annotations;
namespace Avalonia.Dialogs
namespace Avalonia.Dialogs.Internal
{
internal class InternalViewModelBase : INotifyPropertyChanged
public class InternalViewModelBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected bool RaiseAndSetIfChanged<T>(ref T field, T value, [CallerMemberName] string propertyName = null)
{
if (!EqualityComparer<T>.Default.Equals(field, value))
@ -22,7 +20,6 @@ namespace Avalonia.Dialogs
return false;
}
[NotifyPropertyChangedInvocator]
protected void RaisePropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

3
src/Avalonia.Dialogs/ManagedFileChooserFilterViewModel.cs

@ -1,10 +1,11 @@
using System.Linq;
using System.Text.RegularExpressions;
using Avalonia.Dialogs.Internal;
using Avalonia.Platform.Storage;
namespace Avalonia.Dialogs
{
internal class ManagedFileChooserFilterViewModel : InternalViewModelBase
public class ManagedFileChooserFilterViewModel : InternalViewModelBase
{
private readonly Regex[] _patterns;
public string Name { get; }

3
src/Avalonia.Dialogs/ManagedFileChooserItemViewModel.cs

@ -1,8 +1,9 @@
using System;
using Avalonia.Dialogs.Internal;
namespace Avalonia.Dialogs
{
internal class ManagedFileChooserItemViewModel : InternalViewModelBase
public class ManagedFileChooserItemViewModel : InternalViewModelBase
{
private string _displayName;
private string _path;

2
src/Avalonia.Dialogs/ManagedFileChooserNavigationItem.cs

@ -1,6 +1,6 @@
namespace Avalonia.Dialogs
{
internal class ManagedFileChooserNavigationItem
public class ManagedFileChooserNavigationItem
{
public string DisplayName { get; set; }
public string Path { get; set; }

3
src/Avalonia.Dialogs/ManagedFileChooserViewModel.cs

@ -8,12 +8,13 @@ using System.Runtime.InteropServices;
using Avalonia.Collections;
using Avalonia.Controls;
using Avalonia.Controls.Platform;
using Avalonia.Dialogs.Internal;
using Avalonia.Platform.Storage;
using Avalonia.Threading;
namespace Avalonia.Dialogs
{
internal class ManagedFileChooserViewModel : InternalViewModelBase
public class ManagedFileChooserViewModel : InternalViewModelBase
{
private readonly ManagedFileDialogOptions _options;
public event Action CancelRequested;

5
src/Avalonia.Themes.Fluent/Controls/ButtonSpinner.xaml

@ -1,8 +1,7 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=netstandard"
xmlns:converters="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls"
x:CompileBindings="True">
xmlns:sys="using:System"
xmlns:converters="using:Avalonia.Controls.Converters">
<Design.PreviewWith>
<Border Padding="20">
<StackPanel Spacing="20">

3
src/Avalonia.Themes.Fluent/Controls/CalendarDatePicker.xaml

@ -1,7 +1,6 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=netstandard"
x:CompileBindings="True">
xmlns:sys="using:System">
<Design.PreviewWith>
<Border Margin="20, 20, 20, 200">
<CalendarDatePicker Width="200" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" />

8
src/Avalonia.Themes.Fluent/Controls/CalendarItem.xaml

@ -6,9 +6,7 @@
-->
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=netstandard"
x:CompileBindings="True"
x:DataType="CalendarItem">
xmlns:sys="using:System">
<Design.PreviewWith>
<Border Padding="20">
<Calendar DisplayDate="2000-01-01">
@ -58,7 +56,7 @@
<ControlTheme x:Key="{x:Type CalendarItem}" TargetType="CalendarItem">
<Setter Property="CornerRadius" Value="{DynamicResource ControlCornerRadius}" />
<Setter Property="DayTitleTemplate">
<Template>
<Template x:DataType="x:String">
<TextBlock Text="{Binding}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
@ -112,7 +110,7 @@
</Button>
</Grid>
<!--Border below is used only for MonthView but it can't be moved inside of Grid because CalendarItem expects it to be empty and it will cause side-effects-->
<Border Name="BackgroundLayer" Background="{TemplateBinding BorderBrush}" Margin="0,38,0,0" IsVisible="{ReflectionBinding #MonthView.IsVisible}" Grid.Row="1" />
<Border Name="BackgroundLayer" Background="{TemplateBinding BorderBrush}" Margin="0,38,0,0" IsVisible="{Binding #PART_MonthView.IsVisible}" Grid.Row="1" />
<Grid Name="PART_MonthView" Grid.Row="1" IsVisible="False" MinHeight="290">
<Grid.RowDefinitions>
<!--This should always be the week day names??-->

2
src/Avalonia.Themes.Fluent/Controls/ComboBox.xaml

@ -1,6 +1,6 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=netstandard">
xmlns:sys="using:System">
<Design.PreviewWith>
<Border Padding="20">
<StackPanel Spacing="10">

5
src/Avalonia.Themes.Fluent/Controls/DataValidationErrors.xaml

@ -1,8 +1,7 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="using:System"
x:CompileBindings="True"
x:DataType="DataValidationErrors">
xmlns:collections="using:System.Collections">
<Design.PreviewWith>
<Border Padding="20">
<StackPanel Spacing="20">
@ -99,7 +98,7 @@
</Style>
</Panel.Styles>
<ToolTip.Tip>
<ItemsControl Items="{ReflectionBinding}" />
<ItemsControl Items="{Binding}" x:DataType="collections:IEnumerable" />
</ToolTip.Tip>
<Path Width="14"
Height="14"

3
src/Avalonia.Themes.Fluent/Controls/DatePicker.xaml

@ -7,8 +7,7 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=netstandard"
x:CompileBindings="True">
xmlns:sys="using:System">
<Design.PreviewWith>
<Border Padding="20" Height="500">
<StackPanel Spacing="20" VerticalAlignment="Center">

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save