WPF动态资源和静态资源后台代码绑定

本文介绍了XAML中如何使用动态资源和静态资源,包括动态引用字符串资源、设置按钮样式,以及处理Base64编码的面部编码以在UI中显示。
摘要由CSDN通过智能技术生成

1、动态资源

//页面引用动态资源
<Button Content="{DynamicResource 动态资源的某个Key}">
    <Button.Background>
        <ImageBrush ImageSource="{DynamicResource ClientCheckUserBtnBJ}"/>
    </Button.Background>
</Button>

//后台代码引用动态资源
btn.Content = FindResource("动态资源的某个Key");
//设置按钮背景图片
BitmapImage img= (BitmapImage)FindResource("ClientCheckUserBtnBJ");
ImageBrush ib = new ImageBrush();
ib.ImageSource = img;
btn.Background = ib;

//图片地址设置背景图
var filepath = "pack://application:,,,/ClientImage/Group btnBJ.png";
btn.Background = new ImageBrush(new BitmapImage(new Uri(filepath)));
//后台设置颜色编码
//u.state.Foreground = (Brush)new BrushConverter().ConvertFromString("#2DE1FB");

动态资源样式

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <sys:String x:Key="动态资源的某个Key">资源的值</sys:String>
    <sys:String x:Key="English">英文</sys:String>
    <sys:String x:Key="International">English</sys:String>
    <sys:String x:Key="labelLanguage">Language:</sys:String>
    <sys:String x:Key="comboEnglish">English</sys:String>
    <sys:String x:Key="comboChinese">Chinese</sys:String>
    <sys:String x:Key="comboJP">Japanese</sys:String>
<!--图片资源-->
 <BitmapImage x:Key="ClientBtnCun" UriSource="../ThemeImage/ClientImg/ClientBtnCun01.png" />
 <BitmapImage x:Key="ClientBtnQu" UriSource="../ThemeImage/ClientImg/ClientBtnQu01.png" />
</ResourceDictionary>

2、静态资源

//页面引用静态资源
 <Button Style="{StaticResource ButtonStyle}"/>

//后台代码设置静态资源
btn.Style = (System.Windows.Style)this.Resources["ButtonStyle"];

静态资源样式

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:System="clr-namespace:System;assembly=mscorlib">

    <Style TargetType="Button" x:Key="ButtonStyle">
        <Setter Property="FocusVisualStyle" Value="{x:Null}" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate>
                    <Grid Background="{TemplateBinding Button.Background}">
                        <Label HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Content="{TemplateBinding Button.Content}" Foreground="{TemplateBinding Button.Foreground}" FontSize="{TemplateBinding Button.FontSize}"></Label>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
</ResourceDictionary>

3、将base64位string类型的人脸编码转化byte[] ,再转换成图片的Source,才能将人脸显示到页面的图片框中。

//Image控件显示数据库中面部编码图像
byte[] base64 = Convert.FromBase64String("base64类型的面部字节码");
Image1.Source = (BitmapSource)new ImageSourceConverter().ConvertFrom(base64);
 
//background属性显示数据库中的面部编码图像
ImageBrush ib = new ImageBrush();
byte[] base64 = Convert.FromBase64String("base64类型的面部字节码");
ib.ImageSourse = (BitmapSource)new ImageSourceConverter().ConvertFrom(base64);
  //Border控件背景图片设置
border1.Background = ib;
  //Grid控件背景图片设置
grid1.BackGround = ib;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值