簡體   English   中英

WPF:更改模板的背景色

[英]WPF: Change background color of a template

我已經定義了一個菜單模板,從理論上講,它應該使用在單獨文件中定義的“ AppBackground” SoliColorBrush的背景色。

在“調試模式”下,我使用以下代碼更改該變量:this.Resources [“ AppBackground”] = new SolidColorBrush(Colors.DarkGreen);

這對應用程序背景有預期的影響,但是,對我的自定義菜單設計似乎沒有影響。 我試圖同時使用StaticResource和DynamicResource,但沒有任何運氣。 這是一個已知問題,這里有技巧嗎?

在ResourceDirectory中定義:

<SolidColorBrush x:Key="AppBackground" Color="#003466"/>

在文件中定義:

 <Style x:Key="{x:Type MenuItem}" TargetType="{x:Type MenuItem}">
   <Setter Property="Template">
       <Setter.Value>
          <ControlTemplate TargetType="{x:Type MenuItem}">
              <Border x:Name="Border" BorderThickness="1">
                 <Grid Background="{Binding Source={StaticResource AppBackground}}">

Havent看到您標記了它也不適用於DynamicBinding。 我只看了代碼。 這就是為什么我寫第一個答案的原因:

使用DynamicBinding,應該可以。

您通過綁定包裝資源的實際問題 刪除它 ,就像我在其他帖子中寫的那樣。 對不起,有多個答案的混亂情況。

<Grid Background="{DynamicResource AppBackground}">

似乎是鍵入錯誤:刪除{Binding... ,它可以工作:

<Grid Background="{DynamicResource AppBackground}"> 

綁定充當資源和目標之間的包裝,並阻止跟蹤更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM