WPF - Canvas - InkCanvas - Нанесение краски

Я полностью застрял в разработке приложения WPF, которое почти похоже на MS Paint, я застрял в части добавления текста.

Я использую InkCanvas и его события, чтобы указать на холст для чернил и добавляю новое текстовое поле. То, что я делаю сейчас для добавления текста на холст, ниже:

    private void btnTxt_Click(object sender, RoutedEventArgs e)
    {
        isLastPressedText = true;
    }
    private void inkCanvas_PreviewMouseDown(object sender, MouseButtonEventArgs e)
    {
        if (isLastPressedText)
        {
            System.Windows.Point position = e.GetPosition(inkCanvas);
            position.Y = position.Y - this.TranslatePoint(new System.Windows.Point(0, 0), e.Source as UIElement).Y;

            TextBox txt = new TextBox();
            txt.Width = 100;
            txt.Height = 20;

            ContentControl control = new ContentControl();
            Thickness marginL = control.Margin; marginL.Left = position.X; control.Margin = marginL; //X-coordinate..
            Thickness marginR = control.Margin; marginR.Top = position.Y; control.Margin = marginR; //Y-coordinate..

            control.Content = txt;
            control.Width = 100;
            control.Height = 20;

            mainCanvas.Children.Add(control);
            isLastPressedText = false;
        }

Я не получаю желаемого результата, так как текстовое поле не изменяет размеры и не перемещается, а также обладает такими другими функциями, как в текстовых дополнениях MS Paints.

Я должен развить функциональность добавления текста, как показано в этом видео (пожалуйста, посмотрите).

Любой пример кода / ссылки или любой, кто может отследить меня по правильному пути с некоторыми примерами..!

0 ответов

Другие вопросы по тегам