wpf add resource dynamically in cs file
//xaml <Window x:Class="WpfApp12.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfApp12" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Window.Resources> <LinearGradientBrush x:Key="brush1"> <GradientStop Offset="0" Color="Yellow"/> <GradientStop Offset="1" Color="Orange"/> </LinearGradientBrush> </Window.Resources> <StackPanel x:Name="panel"> <Rectangle Height="100" Stroke="Black" Fill="{StaticResource brush1}"/> <Ellipse StrokeThickness="20" Height="100" x:Name="ellipse" Stroke="{StaticResource brush1}" /> <Rectangle Fill="{StaticResource brush2}" Stroke="Black" StrokeThickness="20" Height="100"/> </StackPanel> </Window> //xaml.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace WpfApp12 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { AddResources(); InitializeComponent(); FindResource(); } private void AddResources() { //green this.Resources.Add("brush2", new SolidColorBrush(Color.FromRgb(0,255,0))); } private void FindResource() { Brush bs = (Brush)this.FindResource("brush1"); Ellipse ellipse = panel.FindName("ellipse") as Ellipse; Ellipse elp2 = this.FindName("ellipse") as Ellipse; Brush brush2 = this.FindResource("brush1") as Brush; Brush bs2 = (Brush)this.TryFindResource("brush2"); if(bs2 != null) { bs2.Freeze(); } } } }
The key part located at add resource via c# ,and place the Add function before InitializeComponent,then we can invoke the added resource just now.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2023-03-24 cpp once_flag,call_once in mutex
2021-03-24 WPF implement SelectedCommand in MVVM via Interaction.Triggers
2020-03-24 C# HttpClient PostAsync with parameters