1

次の XAML があります。

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <DockPanel Margin="5">
  <Path Stroke="Black" StrokeThickness="1" Fill="White" DockPanel.Dock="Left" VerticalAlignment="Center">
      <Path.Data>
          <GeometryGroup>
              <LineGeometry StartPoint="10,0" EndPoint="0,10" />
              <LineGeometry StartPoint="0,10" EndPoint="10,20" />
          </GeometryGroup>
      </Path.Data>
    </Path>
    <Rectangle Stroke="Black" RadiusX="10" RadiusY="10"/>
  </DockPanel>
</Page>

吹き出しのように作成します。ただ、2つが合わさる部分は白にするか、ストロークを入れないようにしたいです。

ここに画像の説明を入力

4

2 に答える 2

1

あまり賢くはありませんが、おそらく十分です。

<DockPanel Margin="5">
    <Path Stroke="Black" StrokeThickness="1"
          Fill="White" DockPanel.Dock="Left" VerticalAlignment="Center"
          Panel.ZIndex="1" Margin="0,0,-1,0" Data="M10,0 L0,10 10,20"/>
    <Rectangle Stroke="Black" RadiusX="10" RadiusY="10"/>
</DockPanel>

CombinedGeometryより良い解決策は、Path と Rectangle からを作成することです。

于 2013-08-21T16:41:10.697 に答える
0

Blend にアクセスできる場合は、Calloutコントロールを使用できます。これはまさに必要なことを行います。次のアセンブリにあります。

C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.0\Libraries\Microsoft.Expression.Drawing.dll

次のように使用されます。

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing" x:Class="WpfApplication1.MainWindow"
        Title="MainWindow" Height="350" Width="525">
    <Grid>

        <ed:Callout AnchorPoint="-0.061,0.716" CalloutStyle="RoundedRectangle" Content="Callout" Fill="#FFF4F4F5" FontSize="14.667" HorizontalAlignment="Left" Height="109" Margin="61,78,0,0" Stroke="Black" VerticalAlignment="Top" Width="375"/>

    </Grid>
</Window>

スクリーンショット

編集: Blend (VS 2012 用) を使用している場合は、吹き出しのようなパスを自分で簡単に描画できます。

例:

<Path Data="M110.029,0.5 L305.895,0.5 C314.17927,0.50000358 320.895,7.2157323 320.895,15.500005 L320.895,144.202 C320.895,152.48627 314.17927,159.202 305.895,159.202 L110.029,159.202 C101.74473,159.202 95.028999,152.48627 95.029,144.202 L95.029,119.139 0.5,94.029644 94.530329,44.776012 95.029,69.723011 95.029,15.500005 C95.028999,7.2157323 101.74473,0.50000358 110.029,0.5 z" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="159.702" Margin="122.366,45.642,0,0" Stretch="Fill" Stroke="Black" VerticalAlignment="Top" Width="321.395"/>
于 2013-08-21T14:36:34.357 に答える