2012-06-13 209 views
5

我想通過一個Image繪製一些Rectangle在圖像上繪製矩形

,比如我有以下的(白色和黑色)船的空間,我想在此配置文件中的特定位置增加一些(黃色和紅色)矩形:

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更新了答案,使rectange變成紅色並且稍微透明。 – 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