#silverlight #xaml #silverlight-3.0
#silverlight #xaml #silverlight-3.0
Вопрос:
У меня есть объект image и объект rectangle. Теперь я хочу, чтобы изображение было видно только там, где находится прямоугольник, все остальное должно иметь непрозрачность 0,5 — результат должен выглядеть примерно следующим образом:
Когда я устанавливаю непрозрачность прямоугольника на 0,5, эффект получается противоположный — так как же я могу реализовать это, как показано на рисунке? Размер и положение прямоугольника изменяются с помощью встроенного кода, но это не должно иметь никакого значения…
Все подсказки / ответы приветствуются 🙂
Ответ №1:
Если вы хотите добавить непрозрачную маску, чтобы частично скрыть ваше изображение за пределами прямоугольника, это довольно просто.
<Grid>
<Image Source="myImage.jpg" Opacity="0.5/>
<Image Source="myImage.jpg" >
<Image.Clip>
<RectangleGeometry Rect="x,y,w,h"/>
</Image.Clip>
</Image>
</Grid>
Где x, y, w и h — это положение и размер вашего прямоугольника (см. MSDN). Если вы хотите переместить видимую часть, задайте свойство Clip с помощью кода.
Если вы хотите добавить «эффект черной обводки», вы могли бы просто добавить прямоугольник с положением и размером, соответствующими вашему контуру обрезки, после второго изображения в вашей сетке.
Хотите больше информации?