powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF + CustomControl + TextBox
17 сообщений из 92, страница 4 из 4
WPF + CustomControl + TextBox
    #39635690
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrtИ еще одна возможная проблема это компиляция моего юзерконтрола в dll и потом его возможное использование как обычного компонента. Все прежние работы с wpf я делал с помощью написание xаml разметки, и не вижу у себя тулбокса даже в VS. И после просмотра этой инструкции https://social.msdn.microsoft.com/Forums/en-US/900e1968-d9e5-4d29-a902-50195ed8f4fa/how-to-create-a-dll-from-a-wpf-usercontrol понимаю что многих тамошних компонентов нету в моем wpf solution explorer.
хз, кто то вообще пользуется ToolBox'ом в WPF? я нет, думаю его по умолчанию и нет, потому, что он бесполезен.
Отвечать в эту тему больше не буду до тех пор, пока вы не откроете и не почитаете. Ну, а если не откроете и не прочитает, думаю долго вы тут не просидите :)
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39636470
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь еще одна проблемка появилась, и то достаточно серьезная.
Проблема в том что кроме биндинга значений надо - биндить список координат к Polyline Points (PointCollection).
Потому есть необходимость конвертера List<double> (х1,y1,x2,y2, x3,y3) в PointCollection (List<Point>), с приспособлением к параметрам графика. Дополнительная трудность - что конвертер надо определять к внутреннему элементу главного окна - то есть к самому контролу.
Вот код конвертера что основан на работающем коде, что вызывает NullPointerexception к инициализатору цыкла - for (i=0; i<coord.count ...
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 public class Konverter : IValueConverter {
 private Point Normalize (Point pt) { ...
 public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            List<double> coord = (List<double>)value;
            PointCollection collection = new PointCollection();
            for (int i = 0; i < coord.Count; i += 2)
            {
                double x = coord[i];
                double y = coord[i + 1];
            pcollection.Add(NormalizePoint(new Point(x, y)));
            }
            return pcollection;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return false;
        }   


...
<UserControl Name="UCon"
<UserControl.Resources>
<local:Konverter x:Key="PointConverter"/>
</UserControl.Resources>

...<Polyline Name="polyline" Points="{Binding Path=Data, ElementName=UCon, Converter={StaticResource PointConverter}}" />

Другой способ отображение изменений линии (координат) это реализация Callback PropertyChanges (DO, args) для UCon Data DP - но в теле метода нету доступа к другим свойствам UserControlclass таким как polyline потому отобразить изменение при изменение внешне-зависимого свойства координат невозможно. Надо создавать другой инстанс UserControlclass, которым не будет никак связан с первым обьектом юзерконтрола.
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39636528
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrtЗдесь еще одна проблемка появилась, и то достаточно серьезная.
Проблема в том что кроме биндинга значений надо - биндить список координат к Polyline Points (PointCollection).ну, если месяц решаете вопрос, то пробуйте пойти в другую сторону.
Сколько строк уже у вас на сегодня?
Дайте скрин из сети что вы хотите получить в итоге?
Не нобелевка же у вас.
Если так трудно, то убирайте биндинг. Рисуйте график с координатными линиями на одном компонентк Холст.
По MVVC у вас в вью будет 10 строк и клас с методом
График.Нарисуйся(....
Удачи!
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39636530
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrtДругой способ отображение изменений линии (координат) это реализация Callback PropertyChanges (DO
Ещё линии можно рисовать пером по пикселям.
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39636533
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123MVVCMVVM)
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39636678
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, но конвертить надо в Geometry, а Gemotry уже биндить.
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39636729
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesимхо, но конвертить надо в Geometry, а Gemotry уже биндить.смотря что конвертить?
Картину художника на Canvas?
Это невозможно.
Ну и автора тогда уволят за медлителность.
Про биндинг, как будто wpf не существует без биндинга.
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39636780
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с точки зрения сериализации и хранения, конвертации и прочего, лучше использовать Geometry.
Отображать в Canvas в виде Path элементов. Сами координаты могут быть
Начиная от потока, заканчивая простой строкой.
Геометрии можно комбинировать и группировать и производить трансформации.
Вообще svg, ai форматы легко портируются в XAML разметку. Дизайнер делает картинку.
еще очень удобно использовать Shape'ы.

Обычно векторная графика используется для создания сложных по составу элементов управления, типа графы, графики, карты д.р. В остальных случаях можно всегда обойтись готовым набором шейпов, на скорую руку закинутый PathGeometry для отображения векторной иконки и рисованием линий, прямоугольников и прочей ереси, что мы делает каждый день.

https://drive.google.com/file/d/1xSj28uRBmxmGjjf7gkvDAweDWlph5ZXH/view?usp=sharing
вот примерчик, давно валяется, может поможет чем, чтоб разобраться как работать с векторной графикой, сложного типа.
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39636795
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,
Да.
Тут надо смотреть кто с чем умеет работать, и от задачи (привет автору что до сих пор скрина нету).
У меня лично проекты ГИС были, где рисовалось на канве. А также на HDC хоть принтера.
Руками с WinAPI.
Я точно вижу что с биндингом автор закопался.
А с MVVM без биндинга он уйдет работать)))))
Т.к. класс рисования будет отдельно от вью.
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39636962
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и вы строптивые - скрин уже как неделю есть. И полтысячи строк в класе. Мне этого уже может и не надо. Но чтобы не доделать переключение между разными линиями... В моем последнем коде все кажется ясно как белый день - но object value - null. Пусть это значение DP ( List<double> или List<Point>). То есть входной параметр в конвертер null - но сама DP - DATA.COUNT >100
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39636989
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrtНу и вы строптивыеты тоже не подарок).
arrtскрин уже как неделю есть
Где?
arrtполтысячи строк
Хорошо хоть не много....и время у тебя есть.
А биндинг то тебе зачем, если не выходит или студия у тебя кривая.
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39637072
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня вопрос был. И код приведен.
Вот выдержки из подобного вопроса - сайт не буду привожить.
1)"But when I debug the function Convert I see that the first argument named "value" always gets null."
2) "If value is null, then it's a problem with the binding, not with the converter."
3) "No build error. But at run time my (IValueConverter).Convert method gets passed value=null"
Object Value - кажется должен принимать любые типы - то есть причина в моем случае не в типе, хотя я передаю параметризированый список - List<T>
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39655288
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возвращаясь к теме хотелось бы узнать что значит конкретно такой код: textblock.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity)); Size size=textblock.DesiredSize; Что значит Measure с такими параметрами размеров - Double.PositiveInfinity. Это значит что вложенный компонент текстового блока может расширятся к максимально предельным возможным размерам?? Или какая идея применение такой конструкции - лиш определить уже существующие размеры?
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39655291
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrt,

если элемент находится в ScrollViewer'е, или панели StackPanel или любой другой панели или элементе управления у которого нет "границ" для содержимого, то его размеры будут PositiveInfinity. У StackPanel соответственно в том направлении, в котором располагается стопка. В ScrollViewer'е в зависимости от того какая прокрутка доступна.
Если Ширина или Высота бесконечна, обычно размер элемента управления вычисляется исходя из его содержимого, либо заданного размера.
Size size=textblock.DesiredSize
DesiredSize - это предполагаемый размер элемента управления, который задается ему на этапе Measure, на этапе Arrage этот размер берется как предполагаемый и элемент размещается внутри другого в зависимости от его компоновки.
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39658778
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так Measure - это измерение уже существующего размера или его установление? Если второе - тогда почему текстовый блок не занимает максимально возможный размер, если это лиш способ измерить - почему просто не использовать какое то гипотетическое свойство tb.size/desired size? Что если не употреблять DoubleInfinity, a например 0 или его приблизительную длину или ширину?
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39658781
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
WPF + CustomControl + TextBox
    #39659313
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непросто читать. Вначале понятно что сама система wpf определяет размеры, и не всегда они могут быть желаемыми. И в конце написано если есть баттон на 50*50 - и поместить в грид размеры которой меньше, то кнопка будет обрезана - но в конце концов все будет выглядеть как надо? То есть я понял если Size.DoubleInfinity то этот компонент займет все пространство элемента обертки, если не будет других элементов в этой ячейче, а если будет то непонятно какой будет результат, как элементы-потомки будут определять нужные им размеры с помощью рекурсии.
...
Рейтинг: 0 / 0
17 сообщений из 92, страница 4 из 4
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF + CustomControl + TextBox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]