Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Снова о наследовании форм. / 20 сообщений из 20, страница 1 из 1
29.02.2012, 11:46
    #37683807
Lexxxxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
Мне нужно создать несколько форм, имеющих много общих контролов. При этом каждая из форм в дополнение к общим имеет несколько специфичных для нее контролов. Прочитал книжку про WPF и порылся в интернетах и теперь имею полную голову каши. :) Подскажите, как это правильно делается для WPF? Нужно рыть в сторону шаблонов, стилей или еще чего? Пока только есть идея сделать общий базовый класс, написанный только на C#, и в нем выписать все общие контролы, но что-то меня пугает такой путь. Как это делается правильно?
...
Рейтинг: 0 / 0
29.02.2012, 12:12
    #37683879
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
Lexxxxx,

тебе сначала надо выкинуть кашу из голову.
ну или ждать пока тебе тут вычерпают ее :)


для wpf делается обычно. делаешь свои контролы и размещаешь на всех формах.
тут все схоже с winforms.
...
Рейтинг: 0 / 0
29.02.2012, 13:28
    #37684132
Lexxxxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
AlexeiKLexxxxx, тебе сначала надо выкинуть кашу из голову. ну или ждать пока тебе тут вычерпают ее :)
Кашу надо упорядочить! :)

AlexeiKдля wpf делается обычно. делаешь свои контролы и размещаешь на всех формах. тут все схоже с winforms.
Так в винформс я сделал бы базовую форму, а в наследников добавил бы только нужные контролы. А в впф мне что, каждую форму с нуля лепить? Как раз тут не очень похоже! Думаю должны быть какие-то подходы, ведь задача далеко не уникальна.
...
Рейтинг: 0 / 0
29.02.2012, 15:01
    #37684481
Lexxxxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
Я так понимаю что судя по молчанию ответ крайне прост и уважаемая публика просто не хочет тратить время на ответ?! :)
...
Рейтинг: 0 / 0
29.02.2012, 15:03
    #37684487
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
...
Рейтинг: 0 / 0
29.02.2012, 16:23
    #37684728
unknownfromrus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
Lexxxxx,

Тебе AlexeiK уже ответил.

У тебя реально каша в голове.
Создаешь контролы как обычно. Если у тебя один и тот же контрол будет в разных формах - создавай отдельно контрол и рамзмещай его.

Стили и Шаблоны оставь на конец. А именно вынеси их в отдельный файл или в App.xaml. Там определи внешний вид - Style, DataTemplate, ControlTemplate и т.п.

А потом с помощью ссылки на ресурсы цепляй их к контролам.
...
Рейтинг: 0 / 0
29.02.2012, 16:49
    #37684775
Lexxxxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
unknownfromrus...Создаешь контролы как обычно. Если у тебя один и тот же контрол будет в разных формах - создавай отдельно контрол и рамзмещай его....
Ну до этого я уж и сам как нибудь бы допер. Меня интересует именно наследование форм. В винформс я создал бы класс базовой формы. Накидал на него общие контролы. И все остальные формы просто наследовали бы базовую. В WPF так тоже можно, но есть ограничение. Базовый класс не должен использовать при описании XAML. Можно конечно писать кодом, а изменения наблюдать через визуальный конструктор какой нибудь дочерней формы, но как-то это через.... Вот и интересуюсь стандартными практиками WPF в таких случаях.
...
Рейтинг: 0 / 0
29.02.2012, 17:11
    #37684830
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
Lexxxxx,

ну так, стандартная практика, это то что тебе говорят, а не то, что ты хочешь :) это ж не winforms.
...
Рейтинг: 0 / 0
29.02.2012, 17:49
    #37684884
Lexxxxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
AlexeiKну так, стандартная практика, это то что тебе говорят, а не то, что ты хочешь :) это ж не winforms.
Дык я не против! Только мне непонятна фраза "Создаешь контролы как обычно. Если у тебя один и тот же контрол будет в разных формах - создавай отдельно контрол и рамзмещай его.". Особенно "Если у тебя один и тот же контрол будет в разных формах - создавай отдельно контрол и рамзмещай его".
...
Рейтинг: 0 / 0
29.02.2012, 18:03
    #37684907
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
Повторяющиеся части формы можно задать в шаблоне формы/контрола. В большинстве случаев никакого наследования не нужно. Первое, что нужно сделать - забыть о winforms раз и навсегда. Другие возможности и совсем другие подходы
...
Рейтинг: 0 / 0
29.02.2012, 18:35
    #37684946
Lexxxxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
SeVaПовторяющиеся части формы можно задать в шаблоне формы/контрола. ...
Во! Вот чуяла моя душа что к шаблонам копать тоннель во тьме невежества нужно! :)
...
Рейтинг: 0 / 0
01.03.2012, 22:15
    #37687214
Kyubee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
Визуальное наследование - это утерянное знание древних (утеряно вместе с переставшей развиваться delphi), в которое нынешнее поколение не может. Просто не понимает, зачем это надо. Если очень нужно, придётся писать что-то своё.
...
Рейтинг: 0 / 0
01.03.2012, 23:13
    #37687253
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
KyubeeВизуальное наследование - это утерянное знание древних (утеряно вместе с переставшей развиваться delphi), в которое нынешнее поколение не может. Просто не понимает, зачем это надо. Если очень нужно, придётся писать что-то своё.

А зачем оно надо, если без него на порядки проще и гибче? И кому? Тем, кто с ржавыми солдатиками расстаться не может.
...
Рейтинг: 0 / 0
02.03.2012, 00:02
    #37687293
Kyubee_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
>А зачем оно надо, если без него на порядки проще и гибче?
Ну например, требуется сделать документ "такой же, только эту колонку убрать, эту покрасить красным и другой шрифт, и добавить новые колонки в 3ю и 7ю позиции". Через VI решается буквально дописыванием недостающего в дизайнере разметки. А стилями и темплейтами такое навернуть как?
...
Рейтинг: 0 / 0
02.03.2012, 01:14
    #37687370
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
Kyubee_>А зачем оно надо, если без него на порядки проще и гибче?
Ну например, требуется сделать документ "такой же, только эту колонку убрать, эту покрасить красным и другой шрифт, и добавить новые колонки в 3ю и 7ю позиции". Через VI решается буквально дописыванием недостающего в дизайнере разметки. А стилями и темплейтами такое навернуть как?
в xaml все еще проще - контекст может быть любым, добавляем все, что нужно или удаляем из шаблона.
Это абстрактное - сделайте мне красиво.
Попробуй это в дизайнере Delphi изобразить. . Поделись сокральными знаниями, что и как нужно красить?
...
Рейтинг: 0 / 0
02.03.2012, 02:21
    #37687419
Kyubee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
>в xaml все еще проще - контекст может быть любым, добавляем все, что нужно или удаляем из шаблона.
>Это абстрактное - сделайте мне красиво.
А зачем это абстрактное? Я описал конкретную задачу (во внутренней автоматизации половина - такие), привёл конкретное решение с VI, и спросил как то же самое делать без VI. Конкретный вопрос: как средствами xaml добавить колумн в середину грида? (Без копипасты)
>Попробуй это в дизайнере Delphi изобразить. Поделись сокральными знаниями, что и как нужно красить?
Зачем? Разве факт существования задачи на изображение графики как-то подтверждает/опровергает факт существования задач, в которых помогает VI?
...
Рейтинг: 0 / 0
02.03.2012, 10:07
    #37687659
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
Kyubee>в xaml все еще проще - контекст может быть любым, добавляем все, что нужно или удаляем из шаблона.
>Это абстрактное - сделайте мне красиво.
А зачем это абстрактное? Я описал конкретную задачу (во внутренней автоматизации половина - такие), привёл конкретное решение с VI, и спросил как то же самое делать без VI. Конкретный вопрос: как средствами xaml добавить колумн в середину грида? (Без копипасты)
>Попробуй это в дизайнере Delphi изобразить. Поделись сокральными знаниями, что и как нужно красить?
Зачем? Разве факт существования задачи на изображение графики как-то подтверждает/опровергает факт существования задач, в которых помогает VI?

Для гридов никакого наследования не нужно
...
Рейтинг: 0 / 0
05.03.2012, 08:04
    #37691096
Sky Dragon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
А можно задать здесь вопрос, немного отличный от темы, но похожий?)

Можно ли сделать некий базовый класс для всех окон?
типа:

public abstract class BaseWindow: Window

а все окна наследовались бы от него. Просто вылетает ошибка, что классы окон partial, и вторая часть содержится в дизайнере. А меняя там базовый класс с Window на BaseWindow, ошибка все равно остается(
просто хотелось бы для всех окон вынести один общий обработчик событий(например клика мыши). А так тупо копипаст получается)
...
Рейтинг: 0 / 0
05.03.2012, 09:39
    #37691134
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
Sky Dragon,

в XAML укажите что окно BaseWindow а не Window. Вот так:
Код: sql
1.
2.
3.
4.
5.
<telerik:RadWindow xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"         
        xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
...
Рейтинг: 0 / 0
05.03.2012, 09:56
    #37691163
Sky Dragon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о наследовании форм.
Lelouch,
спасибо) про xaml я как то не подумал)
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Снова о наследовании форм. / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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