mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-08 02:30:51 +08:00
69 lines
2.4 KiB
C#
69 lines
2.4 KiB
C#
namespace FluentTest
|
|
{
|
|
using System;
|
|
using System.Windows;
|
|
using ControlzEx.Theming;
|
|
using Fluent;
|
|
using MahApps.Metro.Controls;
|
|
|
|
public partial class MahMetroWindow : MetroWindow, IRibbonWindow
|
|
{
|
|
public MahMetroWindow()
|
|
{
|
|
this.InitializeComponent();
|
|
|
|
this.TestContent.Backstage.UseHighestAvailableAdornerLayer = false;
|
|
|
|
this.Loaded += this.MahMetroWindow_Loaded;
|
|
this.Closed += this.MahMetroWindow_Closed;
|
|
}
|
|
|
|
private void MahMetroWindow_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
this.TitleBar = this.FindChild<RibbonTitleBar>("RibbonTitleBar");
|
|
this.TitleBar.InvalidateArrange();
|
|
this.TitleBar.UpdateLayout();
|
|
|
|
// We need this inside this window because MahApps.Metro is not loaded globally inside the Fluent.Ribbon Showcase application.
|
|
// This code is not required in an application that loads the MahApps.Metro styles globally.
|
|
ThemeManager.Current.ChangeTheme(this, ThemeManager.Current.DetectTheme(Application.Current));
|
|
ThemeManager.Current.ThemeChanged += this.SyncThemes;
|
|
}
|
|
|
|
private void SyncThemes(object sender, ThemeChangedEventArgs e)
|
|
{
|
|
if (e.Target == this)
|
|
{
|
|
return;
|
|
}
|
|
|
|
ThemeManager.Current.ChangeTheme(this, e.NewTheme);
|
|
}
|
|
|
|
private void MahMetroWindow_Closed(object sender, EventArgs e)
|
|
{
|
|
ThemeManager.Current.ThemeChanged -= this.SyncThemes;
|
|
}
|
|
|
|
#region TitelBar
|
|
|
|
/// <summary>
|
|
/// Gets ribbon titlebar
|
|
/// </summary>
|
|
public RibbonTitleBar TitleBar
|
|
{
|
|
get { return (RibbonTitleBar)this.GetValue(TitleBarProperty); }
|
|
private set { this.SetValue(TitleBarPropertyKey, value); }
|
|
}
|
|
|
|
// ReSharper disable once InconsistentNaming
|
|
private static readonly DependencyPropertyKey TitleBarPropertyKey = DependencyProperty.RegisterReadOnly(nameof(TitleBar), typeof(RibbonTitleBar), typeof(MahMetroWindow), new PropertyMetadata());
|
|
|
|
#pragma warning disable WPF0060
|
|
/// <summary>Identifies the <see cref="TitleBar"/> dependency property.</summary>
|
|
public static readonly DependencyProperty TitleBarProperty = TitleBarPropertyKey.DependencyProperty;
|
|
#pragma warning restore WPF0060
|
|
|
|
#endregion
|
|
}
|
|
} |