如何在WPF中设置系统颜色

梁苏彬 2009-04-02 01:57:45
我需要我的按钮颜色设置为系统颜色,即操作系统Windows风格被改变时,我的按钮颜色也相应变化,而不是固定的颜色风格。在WinForm里是这样写的
BackColor = System.Drawing.SystemColors.ControlText
但是WPF里没有System.Drawing.SystemColors.ControlText,只有Blue这样固定的颜色,怎么办?
...全文
575 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Johan. 2012-01-30
  • 打赏
  • 举报
回复
我在C#里面是这样做的:
System.Drawing.SystemColors.Control
Johan. 2012-01-30
  • 打赏
  • 举报
回复
我在C#里面是这样做的:
System.Drawing.SystemColors.Control
梁苏彬 2009-04-08
  • 打赏
  • 举报
回复
自己搞定,在XAML中
<SolidColorBrush x:Key="DefaultForeground" Color="{x:Static SystemColors.ControlTextColor}" />
麻子Mozart 2009-04-02
  • 打赏
  • 举报
回复
帮顶~~
zzxap 2009-04-02
  • 打赏
  • 举报
回复
用c#做图像处理的时候需要用到System.Drawing.Bitmap。在WPF中显示图像的Image控件接受的数据源是ImageSource,因此使用System.Drawing.Bitmap进行图像处理之后要把System.Drawing.Bitmap转换成ImageSource,转换方法如下:
System.Drawing.Bitmap m_Bitmap = new System.Drawing.Bitmap("c:\temp\test.jpg", false);
IntPtr ip = m_Bitmap.GetHbitmap();
BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
ip, IntPtr.Zero, Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
DeleteObject(ip);
imageLarge.Source = bitmapSource;
其中DeleteObject的声明如下:
[DllImport("gdi32")]
static extern int DeleteObject(IntPtr o);
使用过System.Drawing.Bitmap后一定要用DeleteObject释放掉对象,不然内存不释放,很快系统内存就消耗光了。
程序员Linc 2009-04-02
  • 打赏
  • 举报
回复
还没有接触wpf,帮顶~~~

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧