Browse Source

Added content alignment properties.

And align button contents in the center of the button.
pull/4/head
Steven Kirk 12 years ago
parent
commit
16f2fccd42
  1. 19
      Perspex.Controls/ContentControl.cs
  2. 3
      Perspex.Controls/Presenters/ContentPresenter.cs
  3. 5
      Perspex.Themes.Default/ButtonStyle.cs

19
Perspex.Controls/ContentControl.cs

@ -7,16 +7,35 @@
namespace Perspex.Controls
{
using Perspex.Controls.Primitives;
using Perspex.Layout;
public class ContentControl : TemplatedControl
{
public static readonly PerspexProperty<object> ContentProperty =
PerspexProperty.Register<ContentControl, object>("Content");
public static readonly PerspexProperty<HorizontalAlignment> HorizontalContentAlignmentProperty =
PerspexProperty.Register<ContentControl, HorizontalAlignment>("HorizontalContentAlignment");
public static readonly PerspexProperty<VerticalAlignment> VerticalContentAlignmentProperty =
PerspexProperty.Register<ContentControl, VerticalAlignment>("VerticalContentAlignment");
public object Content
{
get { return this.GetValue(ContentProperty); }
set { this.SetValue(ContentProperty, value); }
}
public HorizontalAlignment HorizontalContentAlignment
{
get { return this.GetValue(HorizontalContentAlignmentProperty); }
set { this.SetValue(HorizontalContentAlignmentProperty, value); }
}
public VerticalAlignment VerticalContentAlignment
{
get { return this.GetValue(VerticalContentAlignmentProperty); }
set { this.SetValue(VerticalContentAlignmentProperty, value); }
}
}
}

3
Perspex.Controls/Presenters/ContentPresenter.cs

@ -16,9 +16,6 @@ namespace Perspex.Controls.Presenters
public static readonly PerspexProperty<object> ContentProperty =
ContentControl.ContentProperty.AddOwner<Control>();
public static readonly PerspexProperty<Func<object, Visual>> DataTemplateProperty =
PerspexProperty.Register<ContentPresenter, Func<object, Visual>>("DataTemplate");
public ContentPresenter()
{
this.GetObservable(ContentProperty).Skip(1).Subscribe(this.ContentChanged);

5
Perspex.Themes.Default/ButtonStyle.cs

@ -9,6 +9,7 @@ namespace Perspex.Themes.Default
using System.Linq;
using Perspex.Controls;
using Perspex.Controls.Presenters;
using Perspex.Layout;
using Perspex.Media;
using Perspex.Styling;
@ -23,6 +24,8 @@ namespace Perspex.Themes.Default
Setters = new[]
{
new Setter(Button.TemplateProperty, ControlTemplate.Create<Button>(this.Template)),
new Setter(Button.HorizontalContentAlignmentProperty, HorizontalAlignment.Center),
new Setter(Button.VerticalContentAlignmentProperty, VerticalAlignment.Center),
},
},
new Style(x => x.OfType<Button>().Template().Id("border"))
@ -69,6 +72,8 @@ namespace Perspex.Themes.Default
Content = new ContentPresenter
{
[~ContentPresenter.ContentProperty] = control[~Button.ContentProperty],
[~ContentPresenter.HorizontalAlignmentProperty] = control[~Button.HorizontalContentAlignmentProperty],
[~ContentPresenter.VerticalAlignmentProperty] = control[~Button.VerticalContentAlignmentProperty],
},
[~Border.BackgroundProperty] = control[~Button.BackgroundProperty],
};

Loading…
Cancel
Save