У меня есть всплывающее окно, размер которого изменяется динамически, чтобы соответствовать содержимому. Когда размер увеличивается, ширина всплывающего окна увеличивается только влево, пока не достигнет левого края окна. Но в моем случае я хочу, чтобы ширина всплывающего окна увеличивалась в правильном направлении.
Ниже приведен фрагмент кода, который я использую
XAML:
<StackPanel>
<TextBox x:Name="popupText" Margin="5"/>
<Button Content="Change PopupText" Click="Button_Click_1" Margin="5"/>
<Canvas x:Name="canvas" Width="200" Height="200" Background="Red">
<Rectangle x:Name="rect" Canvas.Top="50" Canvas.Left="50"
Width="50" Height="100"
Stroke="White" StrokeThickness="3"/>
<Popup x:Name="popup" AllowsTransparency="true"
IsOpen="True" Placement="Relative"
PlacementTarget="{Binding ElementName=canvas}"
PlacementRectangle="50,50,50,100"
HorizontalOffset="0"
>
<TextBlock x:Name="textBlock" FontSize="14" Background="Yellow"
TextWrapping="Wrap" >
This is a popup with a PlacementRectangle.
</TextBlock>
</Popup>
</Canvas>
</StackPanel>
C#:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
this.textBlock.Text += this.popupText.Text;
}
Снимки экрана:
Перед изменением размера
После изменения размера
Введите что-нибудь в поле текстовое поле и нажмите кнопку «Изменить всплывающий текст». вы можете ясно видеть, как размер всплывающего окна увеличивается влево.
Выше одного поведения всплывающего окна? Могу ли я изменить это поведение и увеличить ширину всплывающего окна в правильном направлении?
Заранее спасибо, Шобика.