3
我想畫一個顯示內容的用戶控件。基本上我想要一個自定義框,無論內容是什麼。如何在不縮放線寬的情況下縮放路徑幾何圖形以適合視圖框?
我想要那個盒子縮放,所以我正在使用一個viewbox。不幸的是,viewbox轉換整個顯示的控件,而不僅僅是框的幾何形狀。這導致用於邊框的線條被拉伸。
這裏是我的控制,我需要伸展點的矢量路徑,以適應父盒。
這裏是不希望的結果,我得到。
是否有STRETCH時到充滿幾何同時不結垢白描厚度什麼好辦法?
我知道我可以用這種簡單的幾何圖形這幾個其他的方式,但是在我的實際應用程序的路徑要複雜得多。
這裏是那些有興趣誰在我的控制代碼:
<UserControl.Template>
<ControlTemplate TargetType="{x:Type UserControl}">
<Grid>
<Viewbox Stretch="Fill">
<Canvas Name="svg2" Margin="0" Width="100" Height="63" >
<Path Fill="#FFFFFFFF" Stroke="#FF6800FF" StrokeThickness="4" StrokeStartLineCap="Flat" StrokeEndLineCap="Flat" StrokeLineJoin="Miter" StrokeMiterLimit="4" Name="rect2985" RenderTransformOrigin="0,0">
<Path.Data>
<PathGeometry FillRule="Nonzero" Figures="M 0,250 L 0,50 L 150,50 L 200,-0.96 L 250,50 L 400,50 L 400,250 L 0,250z">
<PathGeometry.Transform>
<TransformGroup>
<ScaleTransform ScaleX=".24" ScaleY=".23" />
</TransformGroup>
</PathGeometry.Transform>
</PathGeometry>
</Path.Data>
<Path.RenderTransform>
<TransformGroup>
<TranslateTransform X="2.1" Y="3" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<Grid Canvas.Top="17" Width="90" HorizontalAlignment="Center" Height="40" Canvas.Left="5">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Grid>
</Canvas>
</Viewbox>
</Grid>
</ControlTemplate>
</UserControl.Template>