Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не корректная передача цвета от объекта к объекту, Помогите разобраться с цветами! 
:(
    Опции темы
WolfTheGrey
Дата 4.4.2009, 03:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



Здравствуйте: Объясните  мне, почему на прямую цвет объекта не предается другому объекту?

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

Код

//при первом запуске программы создается кадр  с огромным количеством пикселов
static Rectangle[] recs = new Rectangle[int.Parse(recNumber.Text)];
for (int i = 0; i < recs.Length; i++)
            {
                recs[i] = new Rectangle();
                recs[i].Width =double.Parse( recX.Text);
                recs[i].Height = double.Parse(recY.Text);
                recs[i].Tag = i;
                recs[i].HorizontalAlignment = HorizontalAlignment.Left;
                recs[i].Fill = Brushes.White;
                recs[i].MouseEnter += new MouseEventHandler(recMouseEnter);
                recs[i].MouseMove += delegate { if (isRecMouseLeft) re.Fill = recMouseLeftColor.Fill; };
                if (i%70 == 0)
                {
                    stackVertikal = new StackPanel();
                    stackHorisotal.Children.Add(stackVertikal);
                }
                else
                  stackVertikal.Children.Add(recs[i]);
            }

На ней я рисую, и делаю все что угодно!
потом создаю новый кадр. при этом старые пикселы заносятся в память.



Это сообщение отредактировал(а) WolfTheGrey - 5.6.2009, 06:50
PM MAIL   Вверх
WolfTheGrey
Дата 4.4.2009, 04:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



Можно конечно же расчлинить обьект: Rectangle

Цитата

//запись цвета в память.
for (int i = 0; i < recs.Length; i++)
                recList.Add((Brush) recs[i].Fill);

// и вывод цвеа из памяти
for (int i = 0; i < recs.Length; i++)
                { 
                    recs[i].Fill = Brushes.White; //Обнуление цвета
                    recs[i].Fill = (Brush) recc[i];            //Запись цвета пиксела из памти в матрицу
                }


Но это не есть суть вопоса. 
PM MAIL   Вверх
WolfTheGrey
Дата 4.5.2009, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



Благадарбъю за своевременную помосчь smile

все решается довольно таки просто:
Код

string str = new BrushConverter().ConvertToString(Brushes.AntiqueWhite); 
bbb.Stroke = (Brush)new BrushConverter().ConvertFromString(str);


---------------------------------------------------
Появился другой вопрос: изучаю я WPF на VS2008. Есть там такая тема: как загружать XAML код из файла уже в запущенный проект. Но почему то оно у меня не работает, хоть как и по книжке, хоть как из соседннего файла (генерируеммого студией)

Это сообщение отредактировал(а) WolfTheGrey - 4.5.2009, 09:15

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  TestProizvoditelnost.zip 74,50 Kb
PM MAIL   Вверх
-Mikle-
Дата 4.5.2009, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Цитата(WolfTheGrey @  4.5.2009,  12:06 Найти цитируемый пост)
Благадарбъю за своевременную помосчь

Просто было не понятно, в чем суть... и до сих пор не понятно, даже после ответа. Но твой ответ можно превратить в это:

Код

    bbb.Stroke = Brushes.AliceBlue.Clone();


Добавлено через 4 минуты и 8 секунд
Цитата(WolfTheGrey @  4.5.2009,  12:06 Найти цитируемый пост)
почему то оно у меня не работает

А что именно не работает? Ошибки или что?


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
WolfTheGrey
Дата 5.5.2009, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



Тут по сути заложенно два вопроса:
1- как ссерилиозовать то, что компилятор не позволяет делать. И при этом совсем не важно что это, цвета, или там контрол какой то. Тот обьемный текст кода который я приводил в первых постах - это то как я выкручивался ранее (методом расчлинения)

2- при ручном создании цвета по параметрам(числами) RGB цвет почему то получается постоянно черный.

3- 

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  __________.JPG 54,14 Kb
PM MAIL   Вверх
-Mikle-
Дата 5.5.2009, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Цитата(WolfTheGrey @  5.5.2009,  03:21 Найти цитируемый пост)
1- как ссерилиозовать то, что компилятор не позволяет делать. И при этом совсем не важно что это, цвета, или там контрол какой то. Тот обьемный текст кода который я приводил в первых постах - это то как я выкручивался ранее (методом расчлинения)

Если я правильно понял, то тебе нужно в/из XAML это делать. Попробуй XamlReader.Load и XamlWriter.Save для этой цели.

Цитата(WolfTheGrey @  5.5.2009,  03:21 Найти цитируемый пост)
при ручном создании цвета по параметрам(числами) RGB цвет почему то получается постоянно черный

Ты так делал?
Код

Color c = Color.FromRgb(255, 0, 128);
или в XAML?
Код

<Button Backgrond="#FF0080" ......


По скриншоту, используй XamlReader.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
WolfTheGrey
Дата 6.5.2009, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



Не получается у меня использовать XamlReader. Может даже он тут и не причем, просто Xaml файл с кодом может быть не правельно написан( на один пробел больше и [censored]. Может вы подкинете готовый проектик, чтоб детально разобраться??? smile

Это сообщение отредактировал(а) Partizan - 6.5.2009, 15:20
PM MAIL   Вверх
-Mikle-
Дата 6.5.2009, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Цитата(WolfTheGrey @  6.5.2009,  04:35 Найти цитируемый пост)
просто Xaml файл с кодом может быть не правельно написан

Если так, то тут вам ничто не поможет. Файл должен быть правильным. Самый первый (корневой) узел должен содержать ссылки на пространства имен (xmlns="....", xmlns:x="..."). Но если вы однажды сохранили его при помощи XamlWriter, то он будет читаться и XamlReader'ом. В качестве примера даже вроде и писать нечего.

Вот пример сохраненной формы:
Код

<Window1 Title="Window1" WindowState="Maximized" Width="586" Height="300"
    xmlns="clr-namespace:Wpf1;assembly=Wpf1" 
    xmlns:av="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
    <av:Grid>
        <av:Grid.ColumnDefinitions>
            <av:ColumnDefinition Width="200" />
            <av:ColumnDefinition Width="*" />
        </av:Grid.ColumnDefinitions>
        <av:TreeView Name="treeView1" av:Grid.Column="0" />
    </av:Grid>
</Window1>


Вот так она читается:
Код

    Window wnd = (Window)XamlReader.Load("c:\\window.xaml");




--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
WolfTheGrey
Дата 8.5.2009, 03:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



Может мы на разных студиях пишем?
1- Window wnd = (Window)XamlReader.Load("c:\\window.xaml"); - сразу же отказался компилировать код, ссылаясь на то, что метод LOAD должен принимать параметры STREAM.

2-но если запускать как по учебнику скопированый XAML код выше приведенный тоже выдает ошибку как на картинке.
Ладно, может со временем догадаюсь и научусь.

И что  такое: av:grid я такого еще не проходил smile):
PM MAIL   Вверх
-Mikle-
Дата 8.5.2009, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Цитата(WolfTheGrey @  8.5.2009,  06:42 Найти цитируемый пост)
сразу же отказался компилировать код, ссылаясь на то, что метод LOAD должен принимать параметры STREAM.

Сорри, писал по памяти. Так надо:
Код

    XamlReader.Load(File.OpenRead("........"));


Цитата(WolfTheGrey @  8.5.2009,  06:42 Найти цитируемый пост)
И что  такое: av:grid 

Да это обыкновенный Grid, просто при сохранении XamlWriter поменял местами нэймспейсы, по умолчанию стал локальный нэймспейс, а WPF'овский стал называться av.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
WolfTheGrey
Дата 10.5.2009, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



Такс, кажеся продвинулся чуток по Донольдсу

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  __________.JPG 48,85 Kb
PM MAIL   Вверх
-Mikle-
Дата 10.5.2009, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Ну все верно. У тебя же нет ссылки на мой проект, в котором я это окно создавал, соответственно нет и Window1. Среда не может создать объект того класса, о котором она не знает. Что тебя смущает?

Вот это, вроде, должно читаться:
Код

<Window Title="Window1" WindowState="Maximized" Width="586" Height="300"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="200" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <TreeView Name="treeView1" Grid.Column="0" />
    </Grid>
</Window>




--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
WolfTheGrey
Дата 12.5.2009, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



Заработало smile спасиб. Тоько желание тварить уже ушло smile):
PM MAIL   Вверх
WolfTheGrey
Дата 5.6.2009, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



Добрый день. Помогите разобраться с моей стандартной проблеммой smile

Есть форма на фоне которой картинка, поверх нее натянута сетка: uniformgrid.
Сетка заполняется кубиками по жесткозаданной логике в результате должен получиться лабиринт.

вот только метод: RecPut который отвечает за разметку и граници - работает частично,
а метод StPut: который направляет ветки лабиринта в разные стороны частенько вообще отказывается работать. smile 

Хотя код написан по учебникам грамотно и при компиляции ощибок не выдает  smile 

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  WpfGames.zip 112,85 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0858 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.