WPF- 자른 이미지에 효과를 적용하는 방법?
문제
나는있다 Image
그렇게 잘린다 :
<Image Width="45" Grid.Column="0" Source="{Binding Photo}">
<Image.Clip>
<RectangleGeometry Rect="0,0,45,55" RadiusX="8" RadiusY="8" />
</Image.Clip>
</Image>
드롭 그림자 효과를 어떻게 적용 할 수 있습니까?
업데이트:
Ray가 지적한 바와 같이, 가장 좋은 솔루션은 앤더슨이 제안한 것 - 포장 국경을 가진 솔루션입니다. 감사합니다 앤더슨.
해결책
이것은 작동해야합니다
<Image Width="45" Grid.Column="0" Source="{Binding Photo}"
<Image.Clip>
<RectangleGeometry Rect="0,0,45,55" RadiusX="8" RadiusY="8" />
</Image.Clip>
<Image.Effect>
<DropShadowEffect Color="Black" BlurRadius="20" />
</Image.Effect>
</Image>
그래도 클립과 함께 시도하지 않았습니다.
업데이트 : 작동하지 않습니다 (버그처럼 보입니까?)
나는 이것을 할 것이다 :
<Border Grid.Column="0" >
<Border.Effect>
<DropShadowEffect />
</Border.Effect>
<Image Width="45" Source="{Binding Photo}"
<Image.Clip>
<RectangleGeometry Rect="0,0,45,55" RadiusX="8" RadiusY="8" />
</Image.Clip>
</Image>
</Border>
비트 절름발이와 너비를 정확하게 일치시키기 위해 너비의 일부를 조정해야 할 수도 있지만 아이디어를 얻을 수 있습니다.
다른 팁
이것은 당신을 위해 트릭을 할 것입니다 :
<Border>
<Border.Effect>
<DropShadowEffect />
</Border.Effect>
<Image Stretch="None" Source="{Binding Photo}" >
<Image.Clip>
<RectangleGeometry Rect="0,0,45,55" RadiusX="8" RadiusY="8"/>
</Image.Clip>
</Image>
</Border>
물론 당신의 독창적 인 아이디어는 랩핑 테두리에 적용되는 DropshadowEffect만으로도 원래 아이디어입니다. 비트 맵 효과가 작동하는 방식으로 인해 포함 된 내용의 눈에 보이는 부분에만 적용됩니다.
대답은 image.clip 대신 cruppedbitmap을 사용해야한다는 것입니다.
<Image Width="45">
<Image.Source>
<CroppedBitmap Source="{Binding Photo}" SourceRect="0 0 45 55"/>
</Image.Source>
<Image.Effect>
<DropShadowEffect/>
</Image.Effect>
</Image>
둥근 모서리가 필요하면 외부 이미지를 테두리로 둘러싸고 이미지 브러시를 사용할 수 있습니다.
<Border Width="45" Height="55" CornerRadius="10" >
<Border.Background>
<ImageBrush>
<ImageBrush.ImageSource>
<CroppedBitmap Source="profile.jpg" SourceRect="0 0 45 55"/>
</ImageBrush.ImageSource>
</ImageBrush>
</Border.Background>
</Border>
내가 틀렸다면 저를 바로 잡으십시오. 그렇지 않으면 더 간단하게 할 수 있습니다. 감사!
업데이트 : 분명히 CroppedBitMap의 소스 속성에 바인딩 할 수 없습니다!
제휴하지 않습니다 StackOverflow