2012-06-13 33 views
5

Rectangleを1つだけ描画したいImage私は(白と黒)船のプロファイルを以下している、と私は特定の場所に、このプロファイルの上にいくつかの(黄色と赤)四角形を追加したい例えば画像上に矩形を描く

enter image description here

それは可能ですか?これどうやってするの?

答えて

9

ハイライトしたい領域のx、y、幅、高さを知っていれば、すべてのコントロールをキャンバスに配置できます。

あなたはこのように背後にあるコードで長方形のプロパティを設定することができます

Rectangle rectangle = new Rectangle(); 
rectangle.SetValue(Canvas.LeftProperty, 10); 
rectangle.SetValue(Canvas.TopProperty, 10); 
rectangle.Width = 1000; 
rectangle.Height = 50; 
rectangle.Fill = new SolidColorBrush() { Color = Colors.Red, Opacity = 0.75f }; 

canvas.Children.Add(rectangle); 

とXAMLでそれらを追加したい場合は、これを好きなことができます。

<Canvas> 
    <Image Source="..."/> 
    <Rectangle Canvas.Left="10" Canvas.Top="10" Width="1000" Height="50"> 
     <Rectangle.Fill> 
      <SolidColorBrush Color="Red" Opacity="0.75"/> 
     </Rectangle.Fill> 
    </Rectangle>       
</Canvas> 
+1

のような出力です。 – kenny

+0

@kennyはい可能ですか? – Nick

+0

私はC#とXAMLを使って答えを更新し、矩形を赤く、やや透明にしました。 – Andy

1

これも試してみてください。

<Window 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
x:Class="Multi_Textbox.Window1" 
x:Name="Window" 
Title="Window1" 
Width="640" Height="480"> 

<Grid x:Name="LayoutRoot"> 
    <Image Margin="104,50,75,99" Source="barkship.jpg"/> 
    <Rectangle Fill="#FF28B0DE" HorizontalAlignment="Left" Height="17.334" Margin="212,0,0,111.333" Stroke="Black" VerticalAlignment="Bottom" Width="99.667"/> 
    <TextBlock HorizontalAlignment="Left" Height="11" Margin="230.667,0,0,115" TextWrapping="Wrap" Text="CHANDRU" VerticalAlignment="Bottom" Width="63.333" Foreground="White"/> 
</Grid> 

それは彼はまた、透明性と色を作りたいよこの

Result

+0

このアイロニーはこの+1に強い+1 – sam