Le Khai Hoan Ответов: 3

Преобразование XAML в C#(GDI+) usercontrol


Как преобразовать код xaml ниже в C#(GDI+). Пожалуйста,> спасибо

&ЛТ;холст префиксом xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" префиксом xmlns:х="http://schemas.microsoft.com/winfx/2006/xaml" х:имя="документ" ширина="173.151" высота="144.664" зажим="Ф1 м 0,0 л 173.151,0 Л 173.151,144.664 л 0,144.664 л 0,0"&ГТ;
&ЛТ;полотно х:имя="Pneumatic_brake1" ширина="799.697" высота="599.608" холст.лево="0" холст.верх="0"&ГТ;
&ЛТ;прямоугольник х:имя="прямоугольник" ширина="39.8247" высота="23.5607" холст.слева="133.326" холст.верхний="60.5517" растяжения="заполнить" заполнить="#F3BFBFBF"&ГТ;
&ЛТ;прямоугольник х:имя="Rectangle_0" ширина="39.8247" высота="20.2032" холст.слева="133.326" холст.верхний="62.2304" растяжения="заполнить" заполнить="#F3CACACA"&ГТ;
&ЛТ;прямоугольник х:имя="Rectangle_1" ширина="39.8247" высота="16.8456" холст.слева="133.326" холст.верхний="63.9092" растяжения="заполнить" заполнить="#F3D5D5D5"&ГТ;
&ЛТ;прямоугольник х:имя="Rectangle_2" ширина="39.8247" высота="13.4881" холст.слева="133.326" холст.верхний="65.588" растяжения="заполнить" заполнить="#F3DFDFDF"&ГТ;
&ЛТ;прямоугольник х:имя="Rectangle_3" ширина="39.8247" высота="10.1306" холст.слева="133.326" холст.верхний="67.2668" растяжения="заполнить" заполнить="#F3E9E9E9"&ГТ;
&ЛТ;прямоугольник х:имя="Rectangle_4" ширина="39.8247" высота="6.77301" холст.слева="133.326" холст.верхний="68.9455" растяжения="заполнить" заполнить="#F3F5F5F5"&ГТ;
&ЛТ;прямоугольник х:имя="Rectangle_5" ширина="39.8247" высота="3.35754" холст.слева="133.326" холст.верхний="70.6243" растяжения="заполнить" заполнить="#F3FFFFFF"&ГТ;
&ЛТ;путь х:Имя="Путь" ширина="39.8247" высота="23.5607" холст.слева="133.326" холст.верхний="60.5517" растяжения="заполнить" strokethickness="1" strokemiterlimit="2.75" ход="#FF000000" данных="м 133.326,60.5517 л 173.151,60.5517 л 173.151,84.1124 л 133.326,84.1124 л 133.326,60.5517"&ГТ;
&ЛТ;путь х:имя="Path_6" ширина="133.326" высота="144.664" холст.лево="0" холст.верхний="-3.05176 е-005" растяжения="заполнить" заполнить="#F3838383" данные="0 м,-3.05176 е-005L 72.0885,3.76276 л 72.0885,10.9409 л 122.822,10.9409 л 122.822,3.76276 л 129.979,3.76276 л 129.979,43.3008 л 133.326,43.3008 л 133.326,101.363 л 129.979,101.363 л 129.979,140.843 л 122.822,140.843 л 122.822,133.723 л 72.0885,133.723 л 72.0885,140.843 л 0,144.664 л 0,-3.05176 е-005 З "И gt;
&ЛТ;путь х:имя="Path_7" ширина="133.73" высота="132.855" холст.лево="0" холст.верхний="5.90463" растяжения="заполнить" заполнить="#F3929292" данных="0,5 м.90463 Л 72.0885,9.26218 Л 72.0885,15.9773 Л 122.822,15.9773 Л 122.822,9.26218 Л 129.979,9.26218 Л 129.979,45.8479 Л 133.73,45.8479 Л 133.73,98.8162 Л 129.979,98.8162 Л 129.979,135.402 Л 122.822,135.402 Л 122.822,128.687 Л 72.0885,128.687 Л 72.0885,135.402 Л 0,138.759 л 0,5.90463 З "И gt;
&ЛТ;путь х:имя="Path_8" ширина="133.73" высота="121.103" холст.лево="0" холст.верхний="11.7514" растяжения="заполнить" заполнить="#F39E9E9E" данных="м 0,11.7514 Л 72.0885,14.7037 Л 72.0885,21.0136 Л 122.822,21.0136 Л 122.822,14.7037 Л 129.979,14.7037 Л 129.979,47.9319 Л 133.73,47.9319 Л 133.73,96.2691 Л 129.979,96.2691 Л 129.979,129.497 Л 122.822,129.497 Л 122.822,123.65 Л 72.0885,123.65 Л 72.0885,129.497 Л 0,132.855 л 0,11.7514 З "И gt;
&ЛТ;путь х:имя="Path_9" ширина="133.73" высота="109.352" холст.лево="0" холст.верхний="17.6561" растяжения="заполнить" заполнить="#F3AEAEAE" данных="0,17 М. 6561 Л 72.0885,20.6084 Л 72.0885,26.0499 Л 122.822,26.0499 Л 122.822,20.6084 Л 129.979,20.6084 Л 129.979,50.479 Л 133.73,50.479 Л 133.73,94.1851 Л 129.979,94.1851 Л 129.979,124.056 Л 122.822,124.056 Л 122.822,118.556 Л 72.0885,118.556 Л 72.0885,124.056 Л 0,127.008 л 0,17.6561 З "И gt;
&ЛТ;путь х:имя="Path_10" ширина="133.73" высота="97.5426" холст.лево="0" холст.верхний="23.5607" растяжения="заполнить" заполнить="#F3BDBDBD" данных="м 0,23.5607 Л 72.0885,26.0499 Л 72.0885,30.6811 Л 122.822,30.6811 Л 122.822,26.0499 Л 129.979,26.0499 Л 129.979,52.9682 Л 133.73,52.9682 Л 133.73,91.6958 Л 129.979,91.6958 Л 129.979,118.556 Л 122.822,118.556 Л 122.822,113.52 Л 72.0885,113.52 Л 72.0885,118.556 Л 0,121.103 л 0,23.5607 З "И gt;
&ЛТ;путь х:имя="Path_11" ширина="133.73" высота="85.7912" холст.лево="0" холст.верхний="29.4075" растяжения="заполнить" заполнить="#F3C2C2C2" данных="м 0,29.4075 Л 72.0885,31.5494 Л 72.0885,35.7174 Л 122.822,35.7174 Л 122.822,31.5494 Л 129.979,31.5494 Л 129.979,55.1101 Л 133.73,55.1101 Л 133.73,89.554 Л 129.979,89.554 Л 129.979,112.71 Л 122.822,112.71 Л 122.822,108.484 Л 72.0885,108.484 Л 72.0885,112.71 Л 0,115.199 л 0,29.4075 З "И gt;
&ЛТ;путь х:имя="Path_12" ширина="133.73" высота="73.5767" холст.лево="0" холст.верхний="35.3122" растяжения="заполнить" заполнить="#F3C7C7C7" данных="м 0,35.3122 Л 72.0885,37.3961 Л 72.0885,40.8116 Л 122.822,40.8116 Л 122.822,37.3961 Л 129.979,37.3961 Л 129.979,57.5993 Л 133.73,57.5993 Л 133.73,87.0647 Л 129.979,87.0647 Л 129.979,107.21 Л 122.822,107.21 Л 122.822,103.447 Л 72.0885,103.447 Л 72.0885,107.21 Л 0,108.889 л 0,35.3122 З "И gt;
&ЛТ;путь х:имя="Path_13" ширина="133.73" высота="61.8252" холст.лево="0" холст.верхний="41.2168" растяжения="заполнить" заполнить="#F3CBCBCB" данных="м 0,41.2168 Л 72.0885,42.8956 Л 72.0885,45.8479 Л 122.822,45.8479 Л 122.822,42.8956 Л 129.979,42.8956 Л 129.979,59.6833 Л 133.73,59.6833 Л 133.73,84.5176 Л 129.979,84.5176 Л 129.979,101.768 Л 122.822,101.768 Л 122.822,98.4109 Л 72.0885,98.4109 Л 72.0885,101.768 Л 0,103.042 л 0,41.2168 З "И gt;
&ЛТ;путь х:имя="Path_14" ширина="133.73" высота="50.0159" холст.лево="0" холст.верхний="47.1215" растяжения="заполнить" заполнить="#F3D0D0D0" данных="м 0,47.1215 Л 72.0885,48.3371 Л 72.0885,50.8842 Л 122.822,50.8842 Л 122.822,48.3371 Л 129.979,48.3371 Л 129.979,62.2304 Л 133.73,62.2304 Л 133.73,82.4336 Л 129.979,82.4336 Л 129.979,95.8638 Л 122.822,95.8638 Л 122.822,93.3746 Л 72.0885,93.3746 Л 72.0885,95.8638 Л 0,97.1374 л 0,47.1215 З "И gt;
&ЛТ;путь х:имя="Path_15" ширина="133.73" высота="37.8014" холст.лево="0" холст.верхний="53.4313" растяжения="заполнить" заполнить="#F3D5D5D5" данных="м 0,53.4313 Л 72.0885,54.2418 Л 72.0885,55.9206 Л 122.822,55.9206 Л 122.822,54.2418 Л 129.979,54.2418 Л 129.979,64.7776 Л 133.73,64.7776 Л 133.73,79.8865 Л 129.979,79.8865 Л 129.979,90.4223 Л 122.822,90.4223 Л 122.822,88.2804 Л 72.0885,88.2804 Л 72.0885,90.4223 Л 0,91.2327 л 0,53.4313 З "И gt;
&ЛТ;путь х:имя="Path_16" ширина="133.73" высота="26.1078" холст.лево="0" холст.верхний="59.2781" растяжения="заполнить" заполнить="#F3D9D9D9" данных="м 0,59.2781 Л 72.0885,59.6833 Л 72.0885,60.9569 Л 122.822,60.9569 Л 122.822,59.6833 Л 129.979,59.6833 Л 129.979,66.8615 Л 133.73,66.8615 Л 133.73,77.3973 Л 129.979,77.3973 Л 129.979,84.9229 Л 122.822,84.9229 Л 122.822,83.244 Л 72.0885,83.244 Л 72.0885,84.9229 Л 0,85.386 л 0,59.2781 З "И gt;
&ЛТ;путь х:имя="Path_17" ширина="133.326" высота="14.2985" холст.лево="0" холст.верхний="65.1828" растяжения="заполнить" заполнить="#F3EAEAEA" данных="м 0,65.1828 Л 72.0885,65.588 Л 72.0885,65.9932 Л 122.822,65.9932 Л 122.822,65.588 Л 129.979,65.588 Л 129.979,69.4087 Л 133.326,69.4087 Л 133.326,75.2554 Л 129.979,75.2554 Л 129.979,79.0761 Л 122.822,79.0761 Л 122.822,78.6129 Л 72.0885,78.6129 Л 72.0885,79.0761 Л 0,79.4813 л 0,65.1828 З "И gt;
<path x:name="Path_18" width="133.326" height="144.664" canvas.left="0" canvas.top="-3.05176 e-005" stretch="Fill" strokethickness="1" strokemiterlimit="2.75" stroke="#FF000000" data="M 0,-3.05176 e-005L 72.0885,3.76276 L 72.0885,10.9409 L 122.822,10.9409 л 122.822,3.76276 л 129.979,3.76276 л 129.979,43.3008 л 133.326,43.3008 л 133.326,101.363 л 129.979,101.363 л 129.979,140.843 л 122.822,140.843 л 122.822,133.723 л 72.0885,133.723 л 72.0885,140.843 л 0,144.664 л 0,-3.05176 e-005">
&ЛТ;прямоугольник х:имя="Rectangle_19" ширина="50.3292" высота="10.941" холст.слева="14.6601" холст.верхний="66.8615" растяжения="заполнить" заполнить="#F3A9A9A9"&ГТ;
&ЛТ;прямоугольник х:имя="Rectangle_20" ширина="50.3292" высота="10.5358" холст.слева="14.6601" холст.верхний="105.531" растяжения="заполнить" заполнить="#F35C5C5C"&ГТ;
&ЛТ;прямоугольник х:имя="Rectangle_21" ширина="50.3292" высота="10.941" холст.слева="14.6601" холст.верхний="28.1918" растяжения="заполнить" заполнить="#F35C5C5C"&ГТ;
&ЛТ;прямоугольник х:имя="Rectangle_22" ширина="50.3292" высота="10.5358" холст.слева="14.6601" холст.верхний="124.866" растяжения="заполнить" заполнить="#F3373737"&ГТ;
&ЛТ;прямоугольник х:имя="Rectangle_23" ширина="50.3292" высота="10.4779" холст.слева="14.6601" холст.верхний="9.26218" растяжения="заполнить" заполнить="#F3373737"&ГТ;
&ЛТ;прямоугольник х:имя="Rectangle_24" ширина="50.3292" высота="10.941" холст.слева="14.6601" холст.верхний="47.5267" растяжения="заполнить" заполнить="#F3838383"&ГТ;
&ЛТ;прямоугольник х:имя="Rectangle_25" ширина="50.3292" высота="10.941" холст.слева="14.6601" холст.верхний="86.1964" растяжения="заполнить" заполнить="#F3838383"&ГТ;
&ЛТ;прямоугольник х:имя="Rectangle_26" ширина="50.7332" высота="21.824" холст.слева="72.0885" холст.верхний="61.42" растяжения="заполнить" strokethickness="1" strokemiterlimit="2.75" ход="#FF405473" заполнить="#F3EAEAEA"&ГТ;
&ЛТ;путь х:имя="строка" ширина="0" высота="122.782" холст.слева="122.822" холст.верхний="10.9409" растяжения="заполнить" strokethickness="1" strokemiterlimit="2.75" ход="#FF000000" данных="м 122.822,133.723 л 122.822,10.9409"&ГТ;
&ЛТ;путь х:имя="Line_27" ширина="0" высота="58.0624" холст.слева="129.979" холст.верхний="43.3008" растяжения="заполнить" strokethickness="1" strokemiterlimit="2.75" ход="#FF000000" данных="м 129.979,101.363 л 129.979,43.3008"&ГТ;
&ЛТ;путь х:имя="Line_28" ширина="0" высота="122.782" холст.слева="72.0885" холст.верхний="10.9409" растяжения="заполнить" strokethickness="1" strokemiterlimit="2.75" ход="#FF000000" данных="м 72.0885,133.723 л 72.0885,10.9409"&ГТ;
&ЛТ;путь х:имя="Line_29" ширина="0" высота="137.081" холст.слева="64.9893" холст.верхний="3.76276" растяжения="заполнить" strokethickness="1" strokemiterlimit="2.75" ход="#FF000000" данных="м 64.9893,140.843 л 64.9893,3.76276"&ГТ;
&ЛТ;путь х:имя="Line_30" ширина="0" высота="142.927" холст.слева="14.6601" холст.верхний="0.868317" растяжения="заполнить" strokethickness="1" strokemiterlimit="2.75" ход="#FF000000" данных="м 14.6601,143.796 л 14.6601,0.868317"&ГТ;
&ЛТ;путь х:имя="Line_31" ширина="0" высота="142.927" холст.слева="7.09918" холст.верхний="0.868317" растяжения="заполнить" strokethickness="1" strokemiterlimit="2.75" ход="#FF000000" данных="м 7.09918,143.796 л 7.09918,0.868317"&ГТ;



Что я уже пробовал:

Как преобразовать код xaml ниже в C#(GDI+). Пожалуйста,> спасибо

[no name]

1

3 Ответов

Рейтинг:
1

Dave Kreskowiak

Все, что он делает, - это создает поверхность для рисования и начинает рисовать на ней кучу вещей.

Вам придется конвертировать этот код вручную, если вы хотите сделать это в Windows Forms. Для рисования потребуется элемент управления, например панель, и тонна команд рисования, например графика.DrawRectangle и графика.Ничья.

Нет никакого инструмента, который сделает это за вас.


Le Khai Hoan

Не могли бы вы мне помочь?

Dave Kreskowiak

Я показал вам документацию по элементам, которые вы разместили. Это до вас, чтобы преобразовать код. У меня нет времени делать за тебя твою работу, а ты не будешь делать за меня мою, так что ... ..

Le Khai Hoan

Потому что Winform не поддерживает окно библиотеки.Пользовательский интерфейс как WPF

Dave Kreskowiak

Да, потому что Windows Forms-это не WPF. Вы не можете использовать XAML, опубликованный в приложении Windows Forms.

Вы должны понять, что делает этот XAML (см. ссылки на документацию), и написать код формы Windows, чтобы сделать примерно то же самое. И это требует от вас знания, как сделать пользовательский рисунок в Windows Forms. Если вы не знаете, как рисовать на поверхности управления в Windows Forms, вы не сможете сделать это вообще, пока не научитесь этому тоже!

[no name]

1

Рейтинг:
1

Gerry Schmitz

У вас есть "прямоугольники" и "геометрия пути" (куча линий). Используйте эквивалент в GDI+.

Перья, линии и прямоугольники в GDI+ | Microsoft Docs[^]


Le Khai Hoan

Потому что путь xaml должен содержать данные. Я не знаю, как это сделать?

Dave Kreskowiak

Так что же, по-вашему, это за данные? Это действительно легко понять, если Вы читаете документацию по этому элементу пути. Это данные координат X,Y для каждой точки в наборе линий. Это нетрудно понять.

Le Khai Hoan

У вас есть экзамен по этому поводу?

[no name]

1

Рейтинг:
1

Le Khai Hoan

У меня нет инструмента ! И я не знаю линейных команд xaml для c#.


Dave Kreskowiak

Во-первых, вы разместили это как решение вашего собственного вопроса, а не ответ мне.

Во-вторых, ни у кого нет инструмента! Это у которых существуют!

если ты чего-то не знаешь, тебе лучше пойти и выучить это. В документации на элемент прямоугольник здесь[^]. Путь есть здесь[^]. Холст-это здесь[^].

Le Khai Hoan

Хорошо, спасибо тебе !!

Le Khai Hoan

Я использую для winform C#. Не используйте UWP или WPF