一千萬個為什麽

搜索

如何在運行時更改元素樣式?

我有一個元素和多個樣式,如何在運行時以編程方式或通過XAML綁定在樣式之間切換。



<!-- In the style resources. -->





然後我有一些單選按鈕可以處理更改樣式

private void RadioButton_Click(object sender, RoutedEventArgs e) {
    if (e.Source == rdoQualityBest) {
        fixtureControl.Style = FindResource("FixtureStyle_Best") as Style;
    } else if (e.Source == rdoQualityGood) {
        fixtureControl.Style = FindResource("FixtureStyle_Good") as Style;
    } else {
        fixtureControl.Style = FindResource("FixtureStyle_Fast") as Style;
    }
}

但是這會將樣式應用於元素,而不是替換它,所以如果我應用Fast然後質量,我會得到邊框和陰影。

最佳答案

這樣的事情在過去對我有用(純XAML解決方案):

<!-- Styles 1-4 defined somewhere else on your page -->

    None
    1
    2
    3
    4


<button Content="Button" Style="{Binding ElementName=AvailableStyles, Path=SelectedItem.Tag}"/>


希望這可以幫助!

轉載註明原文: 如何在運行時更改元素樣式?