WPF/C#: Отключить Перетаскивание для TextBoxes?

Я мистифицирован некоторыми ответами, которые предлагают DI в качестве альтернативы использованию одиночных элементов; это несвязанные понятия. Можно использовать DI для введения или одиночного элемента или неодиночного элемента (например, на поток) экземпляры. По крайней мере, это верно при использовании Spring 2.x я не могу говорить за другие платформы DI.

, Таким образом, мой ответ на OP был бы (во всех кроме самого тривиального примера кода) к:

  1. Использование платформа DI как Spring, тогда
  2. Делают его частью Вашей конфигурации DI, являются ли Ваши зависимости одиночными элементами, запрашивают ограниченный по объему, ограниченная по объему сессия, или что бы то ни было.

Этот подход дает Вам разъединенное хорошее (и поэтому гибкий и тестируемый) архитектура, где, использовать ли одиночный элемент, легко обратимая деталь реализации (обеспечил любые одиночные элементы, которые Вы используете, ориентированы на многопотоковое исполнение, конечно).

5
задан Joseph jun. Melettukunnel 29 June 2017 в 07:50
поделиться

2 ответа

You can easily wrap what this article describes into a attached property/behaviours...

ie. TextBoxManager.AllowDrag="False" (For more information check out these 2 CodeProject articles - Drag and Drop Sample and Glass Effect Samplelink text)

Or try out the new Blend SDK's Behaviors

UPDATE

  • Also read this article by Bill Kempf about attached behaviors
  • And as kek444 pointed out in the comments, you then just create a default style for textbxo whit this attached property set!
2
ответ дан 14 December 2019 в 01:14
поделиться

Используйте следующее после InitializeComponent()

DataObject.AddCopyingHandler(textboxName, (sender, e) => { if (e.IsDragDrop) e.CancelCommand(); });
5
ответ дан 14 December 2019 в 01:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: