2015-05-08 7 views
0

Я пробовал Microsoft.Expression.Media.Effects для создания MonoChromeEffect на UIElements.Border.Background Effect

XMLNS: е = "http://schemas.microsoft.com/expression/2010/effects"

<Border.Effect> 
     <e: MonochromeEffect Color="Blue" /> 
</Border.Effect> 

Это прекрасно работает для любого элемента управления с любым цветом.

Моя проблема заключается в попытке применить к ImageBrush. (добавление синего моно оттенка только к фону).

<Border.Background > 
     <ImageBrush ImageSource="{Binding WaterMarkImage}" 
     Stretch="UniformToFill" Opacity=".34" 
     RenderOptions.BitmapScalingMode="HighQuality" 
     AlignmentX="Center" AlignmentY="Top" /> 
    </Border.Background> 

Это раскрасить все элементы управления внутри границы - (в том числе, например, - ListBoxItems моно-синий).

Есть в любом случае просто влияет только ImageBrush - (не пункты списка -? (Держать их белый)

ответ

0

Вы можете использовать VisualBrush с контролем изображения вместо ImageBrush и применить эффект к изображению :

<Border.Background> 
    <VisualBrush> 
     <VisualBrush.Visual> 
      <Image ImageSource="{Binding WaterMarkImage}" 
        Stretch="UniformToFill" Opacity=".34" ...> 
       <Image.Effect> 
        <e:MonochromeEffect Color="Blue"/> 
       </Image.Effect> 
      </Image> 
     </VisualBrush.Visual> 
    </VisualBrush> 
</Border.Background>