Files
TheXamlGuy 731cf3cdf3 More work
2024-02-04 14:08:38 +00:00

40 lines
1.4 KiB
C#

using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Data;
namespace Hyperbar.Controls.Windows;
public class DesktopApplicationBarPresenter :
ContentControl
{
public static readonly DependencyProperty TemplateSettingsProperty =
DependencyProperty.Register(nameof(TemplateSettings),
typeof(DesktopApplicationBarPresenterTemplateSettings), typeof(DesktopApplicationBarPresenter),
new PropertyMetadata(null));
internal new DesktopApplicationBar? Parent;
public DesktopApplicationBarPresenter()
{
DefaultStyleKey = typeof(DesktopApplicationBarPresenter);
TemplateSettings = new DesktopApplicationBarPresenterTemplateSettings();
}
protected override void OnApplyTemplate()
{
SetBinding(ContentProperty, new Binding
{
Source = Parent,
Mode = BindingMode.TwoWay,
Path = new PropertyPath(nameof(Parent.Content)),
});
}
public DesktopApplicationBarPresenterTemplateSettings TemplateSettings
{
get => (DesktopApplicationBarPresenterTemplateSettings)GetValue(TemplateSettingsProperty);
set => SetValue(TemplateSettingsProperty, value);
}
internal void UpdatePlacementState(DesktopApplicationBarPlacemenet placement) => VisualStateManager.GoToState(this, $"{placement}Placement", true);
}