除了3(最小化,最大化,关闭)按钮之外还有一个图像。当窗口背景颜色设置为黑色时,图像不清晰。我想改变颜色就像那些3个按钮改变一样(背景是黑色时反白,反之亦然),任何帮助都是值得赞赏的。用画笔尝试画布,帮助。
按如下方式设置图像:
var img= new Image()
{
Width = 24,
Height = 24,
Source =
new BitmapImage(
new Uri(some.png",
UriKind.Absolute)),
Tag = tag
};
stackPanel.Children.Insert(0, img);
答案 0 :(得分:0)
这是一种做你想做的事情的方法。使用图像作为不透明蒙板时绘制矩形。
<Rectangle x:Name="Icon1" Height="30" Width="30" Fill="{Binding Converter={StaticResource IconColorConverter}}">
<Rectangle.OpacityMask>
<ImageBrush ImageSource="Images/globe.png" Stretch="None" TileMode="Tile" />
</Rectangle.OpacityMask>
</Rectangle>
使用转换器确定图像是白色还是黑色
public class IconColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
Color wb = SystemColors.ActiveBorderColor;
double gs = (wb.R * 0.3 + wb.G * 0.6 + wb.B * 0.1) / 255.0;
if (gs > 0.5)
return Brushes.Black;
else
return Brushes.White;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
资源定义:
<local:IconColorConverter x:Key="IconColorConverter"/>
因此,如果活动边框颜色较暗,则图像将显示为白色;如果活动边框颜色较浅,则图像将显示为黑色,而矩形的其余部分将是透明的。