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 = @"
+
+
+
+
+
+
+";
+
+ var loader = new PerspexXamlLoader();
+ var window = (Window)loader.Load(xaml);
+ var button = window.FindControl