[英]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.