Microsoft.Expression.Controls.Calloutを使用して、にcalloutオブジェクトをペイントしていCanvas
ます。ほとんどの場合、以下のように問題なく表示されます。
ただし、サイズを変更すると、アンカーポイント(およびドロップシャドウの一部)が何らかの形で切り取られます。
SnapToDevicePixels
など、さまざまなプロパティを設定しようとしましたがUseLayoutRounding
、今のところ何も機能しません。
XAMLは次のとおりです(calloutオブジェクトは、 :CalloutElement
から継承するという名前のコントロールのテンプレートとして使用されます。Control
<Style TargetType="{x:Type Editor:CalloutElement}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Editor:CalloutElement}">
<ed:Callout CalloutStyle="RoundedRectangle" Fill="#FFF"
StrokeThickness="2"
AnchorPoint="0.5 1.4">
<ed:Callout.Effect>
<DropShadowEffect BlurRadius="10" Opacity="0.5"/>
</ed:Callout.Effect>
<ed:Callout.Stroke>
<SolidColorBrush Color="Red" />
</ed:Callout.Stroke>
</ed:Callout>
<!-- More XAML for resize adorner -->
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
サイズ変更の装飾者は、コールアウトのサイズを変更できるように、隅に楕円を表示しているように見えることに注意してください。装飾者のコードは、Width
とのを変更するだけHeight
ですCalloutElement
。
これが発生する理由とそれを修正する方法について何か考えはありますか?どんな助けでも大歓迎です。