Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232

Ellipse увеличение width только в одну сторону

06.11.2021, 18:20. Показов 3908. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,
Слайдером пытаюсь менять размер эллипса.
Вот таким образом.
Не устраивает, что размер width меняется в обе стороны.

XML
1
2
3
4
5
6
7
8
9
10
<Ellipse Width="{Binding ElementName=Slider1, Path=Value} Height={Binding ElementName=Slider1, Path=Value}" Fill="Green" />
 
  <Slider
  x:Name="Slider1"
  Width="10"
  Height="100"
  Maximum="100"
  Orientation="Vertical"
  SmallChange="1"
  />
Как бы сделать чтобы Ellipse "рос" влево, например, при этом правая часть оставалась на месте?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.11.2021, 18:20
Ответы с готовыми решениями:

СМА Атлант 1040т1 (аналог Ardo S1000x) не крутит в одну сторону, не вращается двигатель в одну сторону
СМА Атлант 1040т1 модуль 546059301 не вращает барабан в одну сторону. Проверил резисторы R51a R51b целы. Реле К1,к2 целы, цепи...

Ping работает только в одну сторону
Небольшая офисная сеть (Windows 7). Пытаюсь настроить связь между своим компом и стендом. Так вот. От меня на стенд ping проходит. А...

Hibernate: маппинг many-to-many работает только в одну сторону
Есть сущности Автобус и Водитель, связь многие ко многим: Bus.java: @Entity @Table public class Bus implements Serializable { ...

33
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
08.11.2021, 14:41  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Вы если что-то используете хоть чуток постарайтесь вникнуть в то как это надо использовать.
А то такое ощущение, что просто наугад по клавиатуре тарабаните.
почему наугад. Это XAML сгенерированный блендом. Blend -официальная часть студии. Canvas ведь выводится успешно на экран? Значит не бесссмылица.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,177
Записей в блоге: 2
08.11.2021, 15:02
Лучший ответ Сообщение было отмечено кружок-ДДТ как решение

Решение

Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
помогите на примере.
Добавьте конвертер в проект:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
using System.Windows.Markup;
using System.Windows.Media;
 
namespace TriangleGrowing
{
    [ValueConversion(typeof(double), typeof(Geometry))]
    public class DoubleToTriangleConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is double number)
            {
                string res = (-(number * 2.2 + 40)).ToString(culture);
                res = $"M0,0 16, {res} 32,0 Z";
                return Geometry.Parse(res);
            }
            return DependencyProperty.UnsetValue;
        }
 
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
 
        public static DoubleToTriangleConverter Instance { get; } = new DoubleToTriangleConverter();
    }
 
    [MarkupExtensionReturnType(typeof(DoubleToTriangleConverter))]
    public class DoubleToTriangleConverterExtension : MarkupExtension
    {
        public override object ProvideValue(IServiceProvider serviceProvider)
        {
            return DoubleToTriangleConverter.Instance;
        }
    }
 
}
Исходники: TriangleGrowing(кружок-ДДТ).7z

И научитесь пользоваться Гитом.
Пересылать архивы - это не есть хорошо.
XML
32
33
34
35
36
37
38
39
                <Grid Canvas.Left="31" Height="260">
                    <Path 
                        Data="{Binding Value, ElementName=Slider1, Converter={local:DoubleToTriangleConverter}}"
                        Fill="#FF00C800"
                        Stroke="#FF000000"
                        StrokeLineJoin="Round"
                        StrokeThickness="0.5" VerticalAlignment="Bottom" />
                </Grid>
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,177
Записей в блоге: 2
08.11.2021, 15:05
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Это XAML сгенерированный блендом. Blend -официальная часть студии.
Выкиньте его в мусорную корзину.
Он пригоден только для неизменяемых рисунков.
Адекватный XAML не один автоматический инструмент не создаёт.
Xaml пишется РУКАМИ !!!

Добавлено через 1 минуту
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Значит не бесссмылица.
Бессмыслица и ещё та.
И эта бессмыслица одна из причин вашей проблемы.
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
08.11.2021, 15:15  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Бессмыслица и ещё та.
И эта бессмыслица одна из причин вашей проблемы.
да это же рисунок, руками вы не напишите никогда, как нарисуете. допускаю, напишите, но закончите его на пенсии.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,177
Записей в блоге: 2
08.11.2021, 15:22
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
да это же рисунок, руками вы не напишите никогда, как нарисуете. допускаю, напишите, но закончите его на пенсии.
Я же вам показал какая должна быть строка.
И мне на это потребовалось меньше минуты.

Если хотите пользоваться Блендом - пользуйтесь на здоровье.
Но тогда не надо задаваться вопросом как делать динамические рисунки, масштабирование и т.д.

Если вы не изучите геометрию, кто за вас будет делать нужные вам конвертеры?
Обратитесь к MS - моежт их инженеры этим займутся.
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
08.11.2021, 15:29  [ТС]
Элд Хасп,

Посмотрел проект. В нем нет triangle вообще как такового.
Все делается в конвертере. Получается сложные рисунки масштабировать таким образом очень проблематично.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,177
Записей в блоге: 2
08.11.2021, 20:04
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Получается сложные рисунки масштабировать таким образом очень проблематично.
Я вам выше уже объяснил, что само "масштабирование" может пониматься по разному.
Плюс к этому вы хотите реализовать не прямую зависимость от значения, а некую арифметическую функцию.

Допустим, если вам нужно масштабировать включая толщину линии в направлении масштабирования, то можно использовать какие-то сложные многократные вложения контейнеров, чтобы из значения слайдера получить зависимость number * 2.2 + 40.Но какой смысл так извращаться, если для этого можно использовать простой арифметический конвертер (Ссылку на него я вам давал ранее)?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,177
Записей в блоге: 2
08.11.2021, 21:55
Лучший ответ Сообщение было отмечено кружок-ДДТ как решение

Решение

кружок-ДДТ, пример использования арифметического конвертера:
XML
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<Grid Canvas.Left="31" Height="260">
    <Path Height="40" VerticalAlignment="Bottom"
                Data="M0,40 16,0 32,40 Z"
                Fill="#FF00C800"
                Stroke="#FF000000"
                StrokeLineJoin="Round"
                StrokeThickness="0.5" RenderTransformOrigin="0.5,0.5">
        <Path.LayoutTransform>
            <ScaleTransform
                ScaleY="{Binding Value,
                                 ElementName=Slider1,
                                 Converter={cnvs:ExpressionConverter},
                                 ConverterParameter='{}1 + {0} * 0.055 '}"/>
        </Path.LayoutTransform>
    </Path>
</Grid>
Исходники: TriangleGrowing(кружок-ДДТ)mc.7z
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,177
Записей в блоге: 2
08.11.2021, 22:20
кружок-ДДТ, в окне масштабируются два одинаковых треугольника, но разными методами.
Обратите внимание как меняется при масштабировании толщина линии основания треугольников: у первого она сохраняется, а у второго изменяется.
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
10.11.2021, 18:46  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
кружок-ДДТ, в окне два масштабируются два одинаковых треугольника, но разными методами.
Обратите внимание как меняется при масштабировании толщина линии основания труегольника.
первый у меня пошел, второй гляну.

Добавлено через 6 минут
Вы ранее давали в 4.7.2 у меня все было хорошо с запуском на VS2019. Этот 4.8.2 (вы впереди планеты всей). Проблемы.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,177
Записей в блоге: 2
10.11.2021, 19:11
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
Вы ранее давали в 4.7.2 у меня все было хорошо с запуском на VS2019. Этот 4.8.2 (вы впереди планеты всей). Проблемы.
Из-за этого не может быть.
Код 4.7 под 4.8 работает без всяких адаптаций.
Вообще, вам советую всегда использовать 4.8 - это последняя версия и она уже никогда меняться не будет.
Если собираете приложение под старые компы, то можно использовать 4.5 и ниже.
А использование 4.6 и 4.7 в настоящее время бессмысленно.
Может только в каких-то уникальных, единичных ситуациях.

Добавлено через 1 минуту
Сейчас на 4.8 перевел ваш проект из-за того, что мои коды ExpressionConverter реализованы под эту версию.
Вносить в них изменения не хотел.
0
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
10.11.2021, 19:54  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Вообще, вам советую всегда использовать 4.8 - это последняя версия и она уже никогда меняться не будет.
можно по подробнее.

Добавлено через 47 секунд
Цитата Сообщение от Элд Хасп Посмотреть сообщение
и она уже никогда меняться не будет.
????
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,177
Записей в блоге: 2
10.11.2021, 21:03
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
можно по подробнее.
MS остановила развитие Framework.
Дальше будет развиваться только Core.
Поэтому сейчас и заменён тип проекта .Net Core на просто .Net.

Добавлено через 4 минуты
Последние версии Шарпа тоже на Framework не работают.
По крайней мере без "танцев с бубном".
1
10 / 10 / 1
Регистрация: 10.09.2019
Сообщений: 232
11.11.2021, 11:55  [ТС]
Элд Хасп, спасибо, что "тряхнули" меня. Вспомнил, что такое namespace. "Бордель" с конвертерами устранил.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.11.2021, 11:55

Доступность кнопки меняется только в одну сторону
Есть такой код:public ICommand SomeCommand { get; } private void SomeCommand_Execute() { new Thread(() =&gt; { ...

Шапка сайта растягивается только в одну сторону
При изменении размера шапки, размер увеличивается только в правую сторону. Помогите, пожалуйста /* HEADER */ #header { width:...

Вращает только в одну сторону, а нужно в две
Как сделать так чтобы мотор крутился с помощью потенциометра по часовой, против часовой и в середине он останавливался у меня Мотор...

Делаю стрелялку, пуля летит только в одну сторону
Добрый день, я делаю стрелялку, тут пришло время писать скрипт для пули, я его написал , пуля нормально летит. Но летит только в правую...

В собитии по клику элементы отрабатывают только в одну сторону
Всем привет! С jQuery особо никогда не работал и сейчас, когда понадобилось, появилась проблема. Суть вот в чем: Есть блока,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе. Самым главным критерием для меня было создание паролей, в котором отсутствуют знаки: | 1 l I Обработка содержит следующие. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru