none
Стрелка в WPF RRS feed

  • Вопрос

  • WPF C# Приветствую всех.

    Подскажите пожалуйста. Есть Line Rectangle Ellipse с набором свойств

    Каждый из этих элементов - это что? CustomControl?

    Если мне нужна своя "Line" например стрелка. Чтобы у неё тоже были свойства например первое свойство - ширина стрелки второе свойство длина стрелки.

    Или Line Rectangle Ellipse это всё UserControl и просто нарисовать её там и потом вставлять в нужное место экземпляры этого UserControl - а.

    Когда я вставляю Line то это тоже экземпляр UserControl -а?


    • Изменено DevingAs 28 октября 2015 г. 14:45
    28 октября 2015 г. 14:43

Ответы

  • Можно создать красивый с точки зрения кода контрол с свойствами зависимости и маршрутизируемыми событиями


    VB.Net - WPF, UWP

    Скорее всего придётся так.

    Речь о векторной графике. Стрелки, размеры, дуги, выноски и т.п.


    Тогда вам однозначно нужно почитать "WPF: Windows Presentation Foundation в .NET 4.5 с примерами на C# 5.0 для профессионалов" Мэтью МакДонолда. Хоть в названии и стоит "для профессионалов" книга очень легкая и доступная. Раздел посвященный созданию собственных контролов вам поможет в реализации вашей задумки.

    VB.Net - WPF, UWP

    • Помечено в качестве ответа DevingAs 29 октября 2015 г. 6:21
    29 октября 2015 г. 6:18
    Отвечающий
  • Постараюсь объяснить.

    Создайте в вашем проекте пустой класс с именем "Proba". Просто пустой не от чего ненаследуемый. Создайте в нем 7 произвольных свойств. Теперь в коде окна напишите что то вроде MyButton.Content = New Proba.

    Что вы в итоге увидите внутри кнопки? Просо текст с названием класса и все! Я это все к тому, что для того что бы получить отрисовку в окне, умение взаимодействовать с прочими элементами окна и т.д. и т.п. как раз и нужны эти 100500 свойств UserControla


    VB.Net - WPF, UWP

    • Помечено в качестве ответа DevingAs 29 октября 2015 г. 8:12
    29 октября 2015 г. 7:41
    Отвечающий

Все ответы

  • Немного сумбурный вопрос. Что вы именно хотите понять? Как создавались уже имеющиеся контролы в WPF или как создавать свои новые?

    VB.Net - WPF, UWP

    • Изменено LXGDARKEditor 28 октября 2015 г. 16:39
    28 октября 2015 г. 16:39
    Отвечающий
  • Как создать свой например такой   

    Ну типа System.Windows.Shapes.Line

    А тут например MyFirst.MySecond.Arrow

    Чтобы можно было эту стрелку в коде создать так

    Arrow _arr = new Arrow();

    _arr.Width1=10;

    _arr.Width2=0;

    Примерно так.

    28 октября 2015 г. 16:55
  • Программирование тем и хорошо, что одну и ту же задачу можно решить кучей способов. Зависит от конкретных потребностей и предпочтений.

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


    VB.Net - WPF, UWP

    28 октября 2015 г. 17:37
    Отвечающий
  • Можно создать красивый с точки зрения кода контрол с свойствами зависимости и маршрутизируемыми событиями


    VB.Net - WPF, UWP

    Скорее всего придётся так.

    Речь о векторной графике. Стрелки, размеры, дуги, выноски и т.п.

    28 октября 2015 г. 18:13
  • Судя по всему все что вам надо - кнопка с векторной "картинкой" (и возможно без стандартной "обертки"? 

    Поиск по "wpf button with path content" поможет найти решение.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    28 октября 2015 г. 18:39
    Модератор
  • Можно создать красивый с точки зрения кода контрол с свойствами зависимости и маршрутизируемыми событиями


    VB.Net - WPF, UWP

    Скорее всего придётся так.

    Речь о векторной графике. Стрелки, размеры, дуги, выноски и т.п.


    Тогда вам однозначно нужно почитать "WPF: Windows Presentation Foundation в .NET 4.5 с примерами на C# 5.0 для профессионалов" Мэтью МакДонолда. Хоть в названии и стоит "для профессионалов" книга очень легкая и доступная. Раздел посвященный созданию собственных контролов вам поможет в реализации вашей задумки.

    VB.Net - WPF, UWP

    • Помечено в качестве ответа DevingAs 29 октября 2015 г. 6:21
    29 октября 2015 г. 6:18
    Отвечающий
  • Страница 505.

    Всё таки уточняющий вопрос?

    Line - UserControl?

    42 линии на Canvas или в Grid это 42 UserControl - а?

    В книге создаётся там свой UserControl.

    Т.е. если мне нужна линия Line с 7-ю свойствами StrokeTickness Stroke Width X1 X2 Y1 Y2 и больше ничего, то всё равно создаётся экземпляр UserControl -а Line со всеми свойствами?

    И если я создам свой контрол Arrow на базе UserControl то кроме моих нужных мне 7-и свойств будет 98 свойств?

    Я не говорю что это плохо - это для понимания - просто уточнение.

    Или Line - class

    public Class Line

    {

    public int Stroketickness{get; set;}

    public string Name{get; set;}

    public string Stroke{get; set;}

    }

    а потом уже в XAML я создаю <Line Name="azdsf" StrokeTickness...

    на основе просто класса

    А как такового UserControl с такими записями

    <UserControl x:Name="Line" x:Class="Management.UCKv"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    нет


    Или тогда надо почитать книгу с начала? :)
    • Изменено DevingAs 29 октября 2015 г. 6:46
    29 октября 2015 г. 6:39
  • Постараюсь объяснить.

    Создайте в вашем проекте пустой класс с именем "Proba". Просто пустой не от чего ненаследуемый. Создайте в нем 7 произвольных свойств. Теперь в коде окна напишите что то вроде MyButton.Content = New Proba.

    Что вы в итоге увидите внутри кнопки? Просо текст с названием класса и все! Я это все к тому, что для того что бы получить отрисовку в окне, умение взаимодействовать с прочими элементами окна и т.д. и т.п. как раз и нужны эти 100500 свойств UserControla


    VB.Net - WPF, UWP

    • Помечено в качестве ответа DevingAs 29 октября 2015 г. 8:12
    29 октября 2015 г. 7:41
    Отвечающий