Browse Source

Add some more XAML control template goodness.

pull/297/head
Steven Kirk 11 years ago
parent
commit
26a322e0fc
  1. 5
      samples/XamlTestApplicationPcl/XamlTestApp.paml
  2. 2
      src/Markup/Perspex.Markup.Xaml/Binding/XamlTemplateBinding.cs
  3. 2
      src/Markup/Perspex.Markup.Xaml/OmniXAML
  4. 11
      src/Perspex.Base/PerspexObjectExtensions.cs

5
samples/XamlTestApplicationPcl/XamlTestApp.paml

@ -15,7 +15,10 @@
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter Content="{TemplateBinding Content}"/>
<ContentPresenter Content="{TemplateBinding Content}"
TextBlock.Foreground="{TemplateBinding Foreground}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</ControlTemplate>
</Setter>

2
src/Markup/Perspex.Markup.Xaml/Binding/XamlTemplateBinding.cs

@ -45,7 +45,7 @@ namespace Perspex.Markup.Xaml.Binding
if (sourceProperty == null)
{
throw new InvalidOperationException(
$"The property {SourcePropertyPath} could not be found on {instance.GetType()}.");
$"The property {SourcePropertyPath} could not be found on {templatedParent.GetType()}.");
}
instance.Bind(targetProperty, templatedParent.GetObservable(sourceProperty), BindingPriority.Style);

2
src/Markup/Perspex.Markup.Xaml/OmniXAML

@ -1 +1 @@
Subproject commit 2a6309a4d9b60b848241a34bf2adfa16b52c7a85
Subproject commit 4b0aeccf9ad094782973cd76f5319e8a2d600223

11
src/Perspex.Base/PerspexObjectExtensions.cs

@ -77,8 +77,17 @@ namespace Perspex
if (parts.Length == 1)
{
return o.GetRegisteredProperties()
var result = o.GetRegisteredProperties()
.FirstOrDefault(x => !x.IsAttached && x.Name == parts[0]);
if (result != null)
{
return result;
}
// A type can .AddOwner an attached property.
return o.GetRegisteredProperties()
.FirstOrDefault(x => x.Name == parts[0]);
}
else
{

Loading…
Cancel
Save