Обтравочный контур на ImageBrush в Silverlight - PullRequest
2 голосов
/ 08 июля 2010

Есть ли способ поместить обтравочный контур в ImageBrush в Silverlight (не в Image)? Я не вижу его в Intellisense, но мне интересно, есть ли способ сделать это.

Ответы [ 2 ]

2 голосов
/ 08 июля 2010

Еще один непопулярный ответ «Нет». Ответ: нет способа сделать это.

Одним из возможных способов обойти, если жизненно важно создать такую ​​кисть, может быть использование WriteableBitmap. Визуализируйте изображение с использованием исходного источника плюс клип на WriteableBitmap, а затем используйте его в качестве источника для ImageBrush

1 голос
/ 06 июля 2012

Может быть, это поможет

У меня была проблема с ImageBrush и границей с CornerRadius.Я не мог получить изображение для заполнения / обрезки по размеру.Я решил ее, переместив ImageBrush на содержимое Border.

Вот оригинал с проблемой:

<Border CornerRadius="0,0,4,4" BorderThickness="0">
    <Border.Background>
        <ImageBrush ImageSource="/SLTest;component/Resources/background_image.png" Opacity="1" Stretch="UniformToFill" />
    </Border.Background>
    <ListBox x:Name="lbiMesages" 
             Opacity="1" BorderThickness="0" 
             IsHitTestVisible="False" 
             ItemContainerStyle="{StaticResource ListBoxItemStyle1}"
             >

Вот рабочая версия:

<ListBox x:Name="lbiMessages" 
     Opacity="1" BorderThickness="0" 
     IsHitTestVisible="False" 
     ItemContainerStyle="{StaticResource ListBoxItemStyle1}"
     >
     <ListBox.Template>
         <ControlTemplate>
             <Border CornerRadius="0,0,4,4" BorderThickness="0">
                 <Border.Background>
                     <ImageBrush ImageSource="/SLTest;component/Resources/background_image.png" Opacity="1" Stretch="UniformToFill" />
                 </Border.Background>
                 ...
              </Border>
         </ControlTemplate>
...