WPF控件帮助类,实现字体自适应,图片上传解码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace Controls.Helper
{
public class ControlHelper
{
/// <summary>
/// 获得指定元素的父元素
/// </summary>
/// <typeparam name="T">指定页面元素</typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static T GetParentObject<T>(DependencyObject obj) where T : FrameworkElement
{
DependencyObject parent = VisualTreeHelper.GetParent(obj);
while (parent != null)
{
if (parent is T)
{
return (T)parent;
}
parent = VisualTreeHelper.GetParent(parent);
}
return null;
}
/// <summary>
/// 根据宽度自适应字体大小
/// </summary>
/// <returns></returns>
public static double AdjustFontSize(double srcSize, double minSize)
{
double srcScale = 1920f / 1080f;
double curScale = SystemParameters.PrimaryScreenWidth / SystemParameters.PrimaryScreenHeight;
double scale = curScale / srcScale;
double fontSize = srcSize * scale;
if (fontSize > srcSize)
fontSize = srcSize;
if (fontSize < minSize)
fontSize = minSize;
return fontSize;
}
/// <summary>
/// 图片上传 Base64解码
/// </summary>
/// <param name="dataURL">Base64数据</param>
/// <returns>返回一个相对路径</returns>
public static BitmapImage decodeBase64ToImage(string dataURL)
{
string base64 = dataURL.Substring(dataURL.IndexOf(",") + 1); //将‘,’以前的多余字符串删除
BitmapImage bi = new BitmapImage();
try
{
byte[] arr = Convert.FromBase64String(base64);//将纯净资源Base64转换成等效的8位无符号整形数组
bi.BeginInit();
bi.StreamSource = new System.IO.MemoryStream(arr);
bi.EndInit();
//ms.Close();//关闭当前流,并释放所有与之关联的资源
}
catch (Exception)
{
}
return bi;
}
}
}
浙公网安备 33010602011771号