2017-09-13 100 views
1

我想將ProgressDialog中的進度條顏色更改爲HighlightColor。如何在MahApps.Metro ProgressDialog中設置ProgressBarForeground?

隨着CustomResourceDictionary我設法改變按鈕的風格,但不是進度

MetroDialogOptions.CustomResourceDictionary = new ResourceDictionary 
    { 
     Source = new Uri("pack://application:,,,/GUI;component/Styles/DialogDictionary.xaml") 
    }; 

DialogDictionary.xaml的顏色:

<Style x:Key="AccentedDialogSquareButton" 
     BasedOn="{StaticResource HighlightedSquareButtonStyle}" 
     TargetType="{x:Type ButtonBase}"> 
    <Setter Property="Controls:ControlsHelper.ContentCharacterCasing" Value="Normal" /> 
</Style> 

<Style TargetType="{x:Type Dialog:ProgressDialog}" 
        x:Key="NewProgressDialogStyle" 
        BasedOn="{StaticResource {x:Type Dialog:ProgressDialog}}"> 
    <Setter Property="ProgressBarForeground" Value="Red" /> 
</Style> 

<Style TargetType="{x:Type Dialog:ProgressDialog}" 
     BasedOn="{StaticResource NewProgressDialogStyle}" /> 

回答

0

這是目前不可能的。

ProgressBarForeground屬性使用SetResourceReference方法設置爲本地值,因此使用在Style一個Setter沒有效果 - 本地值總是比一個從Style未來更高的優先級。

你可以嘗試重寫AccentColorBrush資源在您的自定義詞典,但不會工作,因爲在Mahapps當前主題代碼將掃描所有的對話框中的合併資源字典,並定義了一種特殊的一個替換此資源作爲「主題口音顏色」。

有關詳細信息,請參閱ThemeManager源代碼。

你只有兩個選擇:

  • 更改主題的強調色到所需的進度條顏色(但當時許多控件將使用這個顏色的外觀)
  • 發佈變更請求Mahapps團隊,以便他們提供覆蓋進度欄顏色的可能性ProgressDialog
相關問題