2016-07-31 7 views
0

ImageBrush不透明マスク(基本的に色付きアイコン)を持つ四角形があります。WPF - ImageBrush不透明マスクによるサイズ矩形

これは私の現在のコードです:

<Rectangle Fill="Black"> 
    <Rectangle.OpacityMask> 
    <ImageBrush ImageSource="/Path/To/Icon.png"/> 
    </Rectangle.OpacityMask> 
</Rectangle> 

これは、矩形の固定幅と高さを設定せずに何の結果を生成しません。 ImageBrushの画像サイズに従って矩形のサイズを変更することは可能ですか?

ありがとうございました。申し訳ありませんが、これは愚かな質問ですが、私はまだWPFを学んでいます。

編集:私が達成しようとしているものを、明確にするためには、このように同じように動作するの長方形のためである:

<Image Source="/Path/To/Icon.png"/> 

これは、イメージソースファイルの大きさに応じてサイズにする必要があります。

答えて

0

Stretch="None"イメージサイズを保持します。バインディングのある長方形ActualWidthおよびActualHeightは、ImageBrushサイズからサイズを変更します。両方を使用しない場合の結果は同じです。どちらの場合も、矩形のサイズはImageBrushのサイズに合わせて変更してください。あなたの問題を理解することを願っています。

<Rectangle Fill="Black" Width="{Binding ActualWidth, ElementName=image}" Height="{Binding ActualHeight, ElementName=image}"> 
    <Rectangle.OpacityMask> 
     <ImageBrush ImageSource="/Path/To/Icon.png" x:Name="image" Stretch="None"> 
     </ImageBrush> 
    </Rectangle.OpacityMask> 
</Rectangle> 
+0

お返事ありがとうございます。しかし、これは私の問題を解決するようではありません。私は明確にするために私の質問を編集しました。 – Mastah

0
<Rectangle Width="{Binding ActualWidth, ElementName=image}" Height="{Binding ActualHeight, ElementName=image}"> 
    <Rectangle.Fill> 
     <ImageBrush ImageSource="C:\Users\neeraj\Pictures\Img1.jpg" x:Name="image" Stretch="None"> 
     </ImageBrush> 
    </Rectangle.Fill> 
</Rectangle> 

このスニペットを試してみてください。なぜ黒を塗りたいのか分かりません。アイデアが黒の周囲を持つことだった場合は、外側のグリッドでBackground = "Black"を使用します。

関連する問題