WPF: Как нарисовать круг и перетащить его вокруг?

Создание ограничения UNIQUE является более ясным положением правила. Атрибут IsUnique индекса является деталью реализации - , как правило реализовано, не , каково правило. Эффект является тем же все же.

7
задан Dave Clemmer 18 August 2011 в 00:21
поделиться

1 ответ

ApplicationIndicator class

Для добавления / изменения / удаления уведомления значок, который мы можем использовать ApplicationIndicator класс:

Представляет индикатор приложения, который состоит из значка и необязательного числового значения.
Значок помещается в область индикаторов вместе с другими, такими как счетчик новой почты, напоминания календаря, счетчик пропущенных вызовов, состояние безопасности и другие.

  • Приложение может зарегистрировать только один индикатор и должно регистрировать его каждый раз при запуске телефона.
  • Все индикаторы сбрасываются после перезагрузки телефона.
  • Индикаторы могут быть не видны, если на строке состояния не будет места.
  • Размеры индикаторов зависят от текущей темы и размера экрана телефона.
  • Размер значка варьируется от 10x10 до 24x24.
  • Если индикатор инициализируется большим значком, генерируется исключение.
  • Индикатор может иметь дополнительное числовое значение, которое обычно служит счетчиком.
  • Значение может быть отрицательным, 0 или положительным.
  • Если индикатор используется как счетчик, лучше скрыть его, когда его значение равно 0.
  • Если значение индикатора слишком велико, Он инкапсулирует изображение и его свойства рисования.

    EncodedImage mImage = EncodedImage.getEncodedImageResource("indicator_icon.png");
    ApplicationIcon mIcon = new ApplicationIcon(mImage);
    

    Затем мы должны зарегистрировать ApplicationIndicator в ApplicationIndicatorRegistry :

    ApplicationIndicatorRegistry.register ( icon , iconOnly , visible )
    icon - значок, который будет отображаться в области индикаторов.
    iconOnly - указывает, должен ли индикатор иметь только представление значка и не иметь значения
    видимое - указывает, должен ли индикатор быть видимым изначально

    ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
    ApplicationIndicator indicator = reg.register(mIcon, false, true);
    

    Изменить значок индикатора и значение

    Чтобы изменить значок, используйте метод ApplicationIndicator.setIcon :

    ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
    ApplicationIndicator appIndicator = reg.getApplicationIndicator();
    appIndicator.setIcon(icon);
    

    Чтобы изменить числовое значение, используйте метод ApplicationIndicator.setValue :

    ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
    ApplicationIndicator appIndicator = reg.getApplicationIndicator();
    appIndicator.setValue(value);
    
    • Если указано очень большое значение, индикатор будет отображать «99 +» или «999+». Легко переместить что-то на 20 пикселей вправо внутри Canvas (просто добавьте в Canvas.Left), но гораздо сложнее сделать это в Grid (вам придется иметь дело с Column, ColumnSpan и Margin).

      Есть код статья проекта, описывающая, как перетаскивать элементы внутри холста: Перетаскивание элементов в холст

      Если вы хотите переместить только этот круг, а не другие элементы управления в существующем холсте / сетке; Я предлагаю вам использовать DragCanvas (из статьи) в качестве наложения поверх обычного Canvas / Grid.

      Что касается части «нарисовать круг»: просто используйте Ellipse как элемент внутри DragCanvas.

3
ответ дан 7 December 2019 в 07:48
поделиться
Другие вопросы по тегам:

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