diff --git a/samples/BindingTest/App.paml b/samples/BindingTest/App.paml new file mode 100644 index 0000000000..ce82a95bd6 --- /dev/null +++ b/samples/BindingTest/App.paml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/samples/BindingTest/App.cs b/samples/BindingTest/App.paml.cs similarity index 85% rename from samples/BindingTest/App.cs rename to samples/BindingTest/App.paml.cs index 70cfcfb44b..80fcaf8433 100644 --- a/samples/BindingTest/App.cs +++ b/samples/BindingTest/App.paml.cs @@ -2,7 +2,7 @@ using Perspex; using Perspex.Controls; using Perspex.Diagnostics; -using Perspex.Themes.Default; +using Perspex.Markup.Xaml; using Serilog; using Serilog.Filters; @@ -14,7 +14,7 @@ namespace BindingTest { RegisterServices(); InitializeSubsystems((int)Environment.OSVersion.Platform); - Styles = new DefaultTheme(); + InitializeComponent(); Log.Logger = new LoggerConfiguration() .Filter.ByIncludingOnly(Matching.WithProperty("Area", "Property")) @@ -36,5 +36,10 @@ namespace BindingTest window.Show(); app.Run(window); } + + private void InitializeComponent() + { + PerspexXamlLoader.Load(this); + } } } diff --git a/samples/BindingTest/BindingTest.csproj b/samples/BindingTest/BindingTest.csproj index 88c61c613b..a66b1b1390 100644 --- a/samples/BindingTest/BindingTest.csproj +++ b/samples/BindingTest/BindingTest.csproj @@ -74,7 +74,12 @@ - + + Designer + + + App.paml + MainWindow.paml @@ -90,7 +95,6 @@ Designer - MSBuild:Compile diff --git a/samples/BindingTest/MainWindow.paml b/samples/BindingTest/MainWindow.paml index c782786e42..9c02eade0d 100644 --- a/samples/BindingTest/MainWindow.paml +++ b/samples/BindingTest/MainWindow.paml @@ -10,7 +10,6 @@ - diff --git a/samples/ControlCatalog/App.paml b/samples/ControlCatalog/App.paml index b09160d0a8..439c61688f 100644 --- a/samples/ControlCatalog/App.paml +++ b/samples/ControlCatalog/App.paml @@ -1,5 +1,8 @@  + + + \ No newline at end of file diff --git a/src/Perspex.Themes.Default/Button.paml b/src/Perspex.Themes.Default/Button.paml index 7cfd1e7f35..baf85381bc 100644 --- a/src/Perspex.Themes.Default/Button.paml +++ b/src/Perspex.Themes.Default/Button.paml @@ -1,15 +1,15 @@  \ No newline at end of file diff --git a/src/Perspex.Themes.Default/CheckBox.paml b/src/Perspex.Themes.Default/CheckBox.paml index cea4b2d114..d05e8b5cf6 100644 --- a/src/Perspex.Themes.Default/CheckBox.paml +++ b/src/Perspex.Themes.Default/CheckBox.paml @@ -1,7 +1,7 @@  + @@ -36,6 +39,6 @@ \ No newline at end of file diff --git a/src/Perspex.Themes.Default/DropDown.paml b/src/Perspex.Themes.Default/DropDown.paml index d1646ac21c..37dd47d49a 100644 --- a/src/Perspex.Themes.Default/DropDown.paml +++ b/src/Perspex.Themes.Default/DropDown.paml @@ -1,11 +1,12 @@  - - \ No newline at end of file diff --git a/src/Perspex.Themes.Default/GridSplitter.paml b/src/Perspex.Themes.Default/GridSplitter.paml index 6c5f936ec2..f6137af74c 100644 --- a/src/Perspex.Themes.Default/GridSplitter.paml +++ b/src/Perspex.Themes.Default/GridSplitter.paml @@ -1,7 +1,7 @@  @@ -25,7 +25,7 @@ diff --git a/src/Perspex.Themes.Default/ListBox.paml b/src/Perspex.Themes.Default/ListBox.paml index 2a151889a0..951a2ef575 100644 --- a/src/Perspex.Themes.Default/ListBox.paml +++ b/src/Perspex.Themes.Default/ListBox.paml @@ -1,6 +1,7 @@  + diff --git a/src/Perspex.Themes.Default/ScrollBar.paml b/src/Perspex.Themes.Default/ScrollBar.paml index fa1f1d9d18..3c31382144 100644 --- a/src/Perspex.Themes.Default/ScrollBar.paml +++ b/src/Perspex.Themes.Default/ScrollBar.paml @@ -2,7 +2,7 @@ diff --git a/src/Perspex.Themes.Default/TabStripItem.paml b/src/Perspex.Themes.Default/TabStripItem.paml index 38ad8d139d..3af1f98f82 100644 --- a/src/Perspex.Themes.Default/TabStripItem.paml +++ b/src/Perspex.Themes.Default/TabStripItem.paml @@ -1,7 +1,7 @@  \ No newline at end of file diff --git a/src/Perspex.Themes.Default/TextBox.paml b/src/Perspex.Themes.Default/TextBox.paml index db477a6313..dcb4230e7b 100644 --- a/src/Perspex.Themes.Default/TextBox.paml +++ b/src/Perspex.Themes.Default/TextBox.paml @@ -1,23 +1,22 @@  + \ No newline at end of file diff --git a/src/Perspex.Themes.Default/ToggleButton.paml b/src/Perspex.Themes.Default/ToggleButton.paml index 0311294db9..90b80129c6 100644 --- a/src/Perspex.Themes.Default/ToggleButton.paml +++ b/src/Perspex.Themes.Default/ToggleButton.paml @@ -1,9 +1,9 @@  \ No newline at end of file diff --git a/src/Perspex.Themes.Default/ToolTip.paml b/src/Perspex.Themes.Default/ToolTip.paml index ed59c08a70..a6fe7bdf1f 100644 --- a/src/Perspex.Themes.Default/ToolTip.paml +++ b/src/Perspex.Themes.Default/ToolTip.paml @@ -1,6 +1,7 @@  + +"; + var loader = new PerspexXamlLoader(); + var userControl = (UserControl)loader.Load(xaml); + var color = (Color)((Style)userControl.Styles[0]).Resources["color"]; + + Assert.Equal(0xff506070, color.ToUint32()); + } + } + + [Fact] + public void SolidColorBrush_Can_Be_Added_To_Style_Resources() + { + using (UnitTestApplication.Start(TestServices.MockPlatformWrapper)) + { + var xaml = @" + + + + +"; + var loader = new PerspexXamlLoader(); + var userControl = (UserControl)loader.Load(xaml); + var brush = (SolidColorBrush)((Style)userControl.Styles[0]).Resources["brush"]; + + Assert.Equal(0xff506070, brush.Color.ToUint32()); + } + } + + [Fact] + public void StyleResource_Can_Be_Assigned_To_Property() + { + var xaml = @" + + + + + + +"; + + var loader = new PerspexXamlLoader(); + var userControl = (UserControl)loader.Load(xaml); + var border = userControl.FindControl("border"); + + DelayedBinding.ApplyBindings(border); + + var brush = (SolidColorBrush)border.Background; + Assert.Equal(0xff506070, brush.Color.ToUint32()); + } + + [Fact] + public void StyleResource_Can_Be_Assigned_To_Setter() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var xaml = @" + + + + + +