Я работаю в C# WPF. У меня есть холст, и я создаю TextBlock определенной ширины внутри этого холста. TextBlock ориентирован на точку {0, 0}. Затем я go ввожу и редактирую TextBlock для увеличения ширины, а TextBlock перемещается вправо {120, 0}! Кроме того, когда я go ввожу и заново отредактирую TextBlock, чтобы уменьшить ширину до ее первоначального размера, TextBlock перемещается обратно в исходную точку {0, 0}!
Вот код, в котором я создаю TextBlock:
public ModelItem_UI(Content content)
{
InitializeComponent();
TextBlock textBlock = new TextBlock();
this.Width = content.Width;
this.Height = content.Height;
this.text = content.ContentText;
this.BackgroundColor = content.BackgroundColor;
this.TextColor = content.TextColor;
if(content.FontHeight != 0)
this.FontSize = content.FontHeight;
Grid.SetColumn(myCanvas, 0);
Grid.SetColumnSpan(myCanvas, 2000);
Grid.SetRow(myCanvas, 0);
Grid.SetRowSpan(myCanvas, 2000);
textBlock.Text = content.ContentText;
textBlock.TextWrapping = TextWrapping.Wrap;
if(content.TransparentBackground)
{
textBlock.Background.Opacity = 0;
}
switch (content.TextAlignment)
{
case Process_Model_App.Content.TextAlignmentValues.Center:
textBlock.TextAlignment = TextAlignment.Center;
break;
case Process_Model_App.Content.TextAlignmentValues.Right:
textBlock.TextAlignment = TextAlignment.Right;
break;
default:
break;
}
// Add to the canvas:
myCanvas.Children.Add(textBlock);
blockName = content.ContentName;
shapes = BlockShapes.createShape(typeof(Content));
highlightRect = new Rectangle();
highlightRect.Height = shapes[0].Height;
highlightRect.Width = shapes[0].Width;
highlightRect.RadiusX = shapes[0].RadiusX;
highlightRect.RadiusY = shapes[0].RadiusY;
highlightRect.Stretch = shapes[0].Stretch;
highlightRect.RenderTransform = shapes[0].RenderTransform;
highlightRect.RenderTransformOrigin = shapes[0].RenderTransformOrigin;
highlightRect.Stroke = new SolidColorBrush(Color.FromArgb(255, 255, 255, 255));
highlightRect.StrokeThickness = 4;
highlightRect.Visibility = Visibility.Hidden;
myCanvas.Children.Add(highlightRect);
}
myCanvas - это холст, который я использую. Спасибо за вашу помощь.