2017-04-09 1 views
0

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

여기 당신이 원하는 것을 할 수있는 방법 중 하나입니다 : 다음과 같이 이미지를 설정

. 이미지를 불투명 마스크로 사용하면서 사각형을 그립니다.

 <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"/> 

이미지가 흰색으로 표시됩니다 활성 경계 활성 테두리 색상이 밝고 나머지 사각형이 투명하면 색상이 어둡고 검은 색입니다.

+0

감사합니다. AQuirky는 빨간색으로 잘 작동하지만 버튼 (최소, 최대, 닫기)이 어떻게 작동하는지과 같은 동적 인 색상을보고있었습니다. 검은 색으로 <-> 흰색을 원하고 다른 단색을 원하지 않습니다. –

+0

좋아요. 활성 창 경계선의 색상에 따라 아이콘을 흰색 또는 검정색으로 색칠하도록 답변을 업데이트했습니다. – AQuirky

관련 문제