我正在做一個使用ModernWPF的專案。我想將TitleBar.Background系結到GetBG。
下面是我的代碼:
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespaceTestApp.Desktop
{
// <summary>
// MainWindow.xaml的互動邏輯。
// </summary>/span>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent()。
Color GetBG() ?
{
var bc = new BrushConverter()。
if (ModernWpf.ThemeManager.GetRequestedTheme(window).ToString() == "Black" || ModernWpf.ThemeManager.GetRequestedTheme(window).ToString() == "Dark")
{
return (Color)ColorConverter.ConvertFromString("#1E1E1E") 。
}
else { return (Color)ColorConverter.ConvertFromString("#E6E6E6"); }
}
}
}
}
<Window x: Name="window" x:Class="OpenRelease。 Desktop.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"/span>
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"。
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"。
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"。
xmlns:local="clr-namespace:TestApp"
mc:Ignorable="d"。
ui:ThemeManager.RequestedTheme="Light"。
<! --這里's where i 想要 來 使用 the 系結。 --- >
ui:TitleBar.Background="{GetBG}"
ui:TitleBar.IsIconVisible="False"
ui:ThemeManager.IsThemeAware="True"
xmlns:ui="http://schemas.modernwpf.com/2019"
ui:WindowHelper.UseModernWindowStyle="True"
Title="TestApp" Height="850" Width="1260">
<Grid>/span>
</Grid>/span>
編輯,我重新命名了GetBG,并在MainWindow.cs檔案中把它變成了公共檔案:
public Color ThemeAwareBackground()
{
var bc = new BrushConverter()。
if (ModernWpf.ThemeManager.GetRequestedTheme(window).ToString() == "Black" || ModernWpf.ThemeManager.GetRequestedTheme(window).ToString() == "Dark")
{
return (Color)ColorConverter.ConvertFromString("#1E1E1E") 。
}
else { return (Color)ColorConverter.ConvertFromString("#E6E6E6"); }
謝謝你。
uj5u.com熱心網友回復:
為了系結作業,它需要一個依賴屬性,我相信它應該設定一個畫筆而不是顏色。 下面是一個可能的依賴屬性的實作,它可能會起作用;在建構式中,可以使用類似于你原來的GetBG()中的代碼來確定正確的值,并設定依賴屬性的值。
public static readonly DependencyProperty ThemeAwareBackgroundBrushProperty =
DependencyProperty.Register(
nameof(ThemeAwareBackgroundBrush)。
typeof(SolidColorBrush)。
typeof(MainWindow)。
new PropertyMetadata(default(SolidColorBrush)))。)
public SolidColorBrush ThemeAwareBackgroundBrush
{
get => (SolidColorBrush) GetValue(ThemeAwareBackgroundBrushProperty) 。
set => SetValue(ThemeAwareBackgroundBrushProperty,value)。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/312736.html
標籤:
上一篇:C#WPF如果兩個不同背景顏色的矩形完全重疊,下面的矩形的邊框會出現
下一篇:按價值型別對物件進行排序
