首页 新闻 搜索 专区 学院

如何用Rectangle画一个菱型?

0
悬赏园豆:100 [已关闭问题]

 

如果用Rectangle画一个图中菱型(不能用poly)只能用Rectangle

牛啊牛的主页 牛啊牛 | 初学一级 | 园豆:16
提问于:2008-11-30 22:36
< >
分享
其他回答(1)
0

1.使用DrawLine画4条首尾相接的线段

2.是DrawPolygon来画多边形

3.使用Region类来画

4.如果该菱形正好是正方形,画一个正方形,然后旋转

上不了岸的鱼 | 园豆:4613 (老鸟四级) | 2008-12-01 00:03
0

如果是WPF是简单些。

可以先通过把Height绑定到ActualWidth上的方式,用Rectangle画个正方形,然后用RenderTransform转45度,外面加个Grid,再对Grid做ScaleTransform。代码如下:

  <Grid RenderTransformOrigin="0.5,0.5">
   <Grid.RenderTransform>
    <TransformGroup>
     <ScaleTransform ScaleX="2" ScaleY="1"/>
     <SkewTransform AngleX="0" AngleY="0"/>
     <RotateTransform Angle="0"/>
     <TranslateTransform X="0" Y="0"/>
    </TransformGroup>
   </Grid.RenderTransform>
   <Rectangle Fill="#FFFFFFFF" Stroke="#FF000000" Width="187" Height="{Binding Path=ActualWidth, RelativeSource={RelativeSource Self}}" StrokeThickness="4" RenderTransformOrigin="0.5,0.5">
    <Rectangle.RenderTransform>
     <TransformGroup>
      <ScaleTransform ScaleX="1" ScaleY="1"/>
      <SkewTransform AngleX="0" AngleY="0"/>
      <RotateTransform Angle="45"/>
      <TranslateTransform X="20" Y="0"/>
     </TransformGroup>
    </Rectangle.RenderTransform>
   </Rectangle>
  </Grid>

 

Silverlight没有RelativeSource,可以把Width和Height都Binding到一个Resource上。代码如下:

 

 <UserControl.Resources>
  <System:Double x:Key="size">191</System:Double>
 </UserControl.Resources>

 <Grid x:Name="LayoutRoot" Background="White" RenderTransformOrigin="0.5,0.5" >
  <Grid.RenderTransform>
   <TransformGroup>
    <ScaleTransform ScaleX="1.3"/>
    <SkewTransform/>
    <RotateTransform/>
    <TranslateTransform/>
   </TransformGroup>
  </Grid.RenderTransform>
  <Rectangle VerticalAlignment="Stretch" Width="{StaticResource size}" Fill="#FFFFFFFF" Stroke="#FF000000" StrokeThickness="8" Height="{StaticResource size}" RenderTransformOrigin="0.5,0.5">
   <Rectangle.RenderTransform>
    <TransformGroup>
     <ScaleTransform/>
     <SkewTransform/>
     <RotateTransform Angle="45"/>
     <TranslateTransform/>
    </TransformGroup>
   </Rectangle.RenderTransform>
  </Rectangle>
 </Grid>

南柯之石 | 园豆:315 (菜鸟二级) | 2008-12-01 23:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册