Wpf Expression Вызов
У меня есть пользовательский элемент управления, который имеет сетку в качестве корневого элемента. Я хочу, чтобы под моим контролем появлялось окно вызова, которое дает дополнительную информацию. У меня проблема в том, что высота и ширина вызова связана с размером сетки. Создание очень маленького элемента управления сокращает поле вызова. Как сделать размер выноски предпочтительным по размеру к текстовому содержимому?
Вот пользовательский контроль
<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>
Вот результат
1 ответ
В WPF настройка явная Height
и / или Width
размеры и / или Margin
с остановит UserControl
от калибровки себя. Если вы хотите UserControl
чтобы изменить свой размер до размера его содержимого, просто удалите явные значения макета и измерения, которые вы установили.