Wpf Expression Call-out剪辑

时间:2013-07-22 13:24:34

标签: wpf expression-blend

我有一个User控件,它有一个网格作为根元素。 我希望在我的控制下弹出一个调出框,提供额外的信息。 我遇到的问题是标注的高度和宽度与网格大小相关联。 使控制非常小会缩小呼出框。 如何使标注大小最好是文本内容的大小?

这是UserControl

<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing" 
mc:Ignorable="d"
x:Class="WpfUserControlsTest.Door"
x:Name="UserControl"
d:DesignWidth="86" d:DesignHeight="19">

<Grid x:Name="LayoutRoot">
    <Rectangle  Fill="Red"/>
    <ed:Callout AnchorPoint="-0.012,1.349" CalloutStyle="RoundedRectangle" Content="Callout text in here" Fill="#FFF4F4F5" FontSize="14.667" HorizontalAlignment="Left" Height="53" Margin="91,-72,-167,0" Stroke="Black" VerticalAlignment="Top" Width="162"/>
</Grid>

在这里使用

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfUserControlsTest" x:Class="WpfUserControlsTest.MainWindow"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Canvas>
        <local:Door HorizontalAlignment="Left" Height="9" VerticalAlignment="Top" Width="23.333" Canvas.Left="28.666" Canvas.Top="83.333" />
    </Canvas>
</Grid>

结果如下 Here is the clipped callout

1 个答案:

答案 0 :(得分:0)

在WPF中,设置明确的Height和/或Width维度和/或Margin将阻止UserControl调整自身大小。如果您希望UserControl将自身重新调整为其内容的大小,只需删除您设置的显式布局和维度值。