我撰寫了一個WPF程式,我想在其中使用設定視窗更改主視窗的背景顏色。專案要求: 1-設定視窗應該能夠將顏色保存在變數中,并在再次打開設定視窗時再次顯示這些顏色。2- 主視窗的背景顏色應該與設定視窗中的顏色完美系結,在進行更改時將立即應用。
我的 WPF 專案
我嘗試了幾種方法,包括: 1- 我在主視窗后面的代碼中定義了一個 LinearGradientBrush 型別的全域變數。2- 我在 app.xaml 檔案中定義了一個 LinearGradientBrush 型別的全域變數。
但是這些方法都沒有正常作業
uj5u.com熱心網友回復:
- 您基本上必須定義畫筆資源。此示例將在App.xaml中定義此資源。
將其命名為“MainWindowBackgroudBrush”:
<ResourceDictionary>
<SolidColorBrush x:Key="MainWindowBackgroudBrush"
Color="Orange" />
</ResourceDictionary>
- 從您的
MainWindow(或通常Control應該具有動態背景的)使用DynamicResource.DynamicResource表示所參考的資源預計在運行時會發生變化(即資源是動態的):
<Window Background="{DynamicResource MainWindowBackgroudBrush}">
</Window>
- 然后從任何地方修改畫筆資源,例如,從您
SettingsWindow使用靜態Application.Current屬性:
Application.Current.Resources["MainWindowBackgroudBrush"] = Brushes.Red;
uj5u.com熱心網友回復:
你為什么不:
1 - 打開設定
2 - 當您關閉設定時(制作 2 個按鈕Save和Cancel),這會保存所有引數(我猜現在您詢問顏色,但會有很多引數)。
3 - 然后在您的主視窗中,您將擁有:
private void OpenSettings_Click(object sender, RoutedEventArgs e)
{
MySettings newWindow = new MySettings();
if (newWindow.ShowDialog() == true)//set this.DialogResult=true in your Settings window.
{
this.updateAllParameters();
}
}
updateParameters()只是一個函式,它將檢查所有引數(作為背景顏色),然后更新它們。
uj5u.com熱心網友回復:
在 Visual Studio 中,轉到“屬性”視窗。導航到設定,添加一個顏色型別的引數,如果您更改顏色,現在將其命名為 yourColor 將其存盤在設定檔案中:
properties.settings.default.yourColor = newBackgroundColor;
properties.settings.default.save();
當你開始你的視窗查看你的屬性并將其用作背景。
this.background = properties.settings.default.yourColor;
(偽代碼不會編譯)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527034.html
標籤:C#wpf捆绑
上一篇:為什么我的WPF和MVVM應用程式中的<ListView>上沒有顯示<ListVIewItem>?
下一篇:可觀察驗證器在wpf中不起作用
