0
我有一個程序有一些按鈕,其中一個用於切換「主題」。 有兩個主題,一個是正常的Windows主題,另一個是Style2。WPF:切換窗口樣式
這是我試過的切換
private bool UsingWindowsStyle = true;
private ResourceDictionary Style2= new ResourceDictionary() { Source = new Uri("/...;component/Resources/DefaultStyles.xaml", UriKind.RelativeOrAbsolute) };
private void SwitchButton_Click(object sender, RoutedEventArgs e)
{
if (UsingWindowsStyle)
{
Resources.MergedDictionaries.Add(Style2);
UsingWindowsStyle = false;
}
else
{
Resources.MergedDictionaries.Remove(Style2);
UsingWindowsStyle = true;
}
}
我的問題是,當我使用這個程序,並按下此Button
,這是發生了什麼:
窗口中打開程序與運行正常Windows主題。
SwitchButton首先點擊程序將視覺效果更改爲Style2主題。所有程序的按鈕都正常運行。
SwitchButton第二次點擊程序恢復到Windows主題,但程序中的所有按鈕都可以工作。
要考慮的問題
- 程序在這一點上並沒有引發任何異常。
- 調試代碼,似乎在第二次點擊後,程序不會輸入
SwitchButton_Click
方法。 我試着讀了Click的
EventHandler
但沒用。SwitchButton.Click += new RoutedEventHandler(SwitchButton_Click);
在此先感謝您的幫助。
我希望我能做的事情很容易:)。問題是Style2不是我自己的代碼,我只是提供了一些我可以使用的DLL,但不允許查看或混淆其中的代碼。使用字典是我知道從DLL中使用這個主題的唯一方式。 – Fa7mY