20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
1
.NET 4.x

ControlTemplate и ContentControl: как динамически загрузить шаблон?

01.03.2015, 16:47. Показов 6233. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В ContentControl в свойство Template устанавливаю ранее созданный шаблон (ControlTemplate)
C#
1
MainWorkSpace.Template = FindResource("GridWorkWithRecup") as ControlTemplate;
НО (проверенно следственным путём) если в той же области кода в которой мы установили новый шаблон попробовать получить новое содержимое данного контрола вылетит ошибка
C#
1
2
MainWorkSpace.Template = FindResource("GridWorkWithRecup") as ControlTemplate;
workGrid = VisualTreeHelper.GetChild(MainWorkSpace, 0) as Grid;
В классе ControlTemplate есть метод LoadContent, НО (снова НО) если его вызвать и после этого попытаться получить новые элементы будет та же ошибка что и в предыдущий раз.
C#
1
2
3
MainWorkSpace.Template = FindResource("GridWorkWithRecup") as ControlTemplate;
MainWorkSpace.Template.LoadContent();
workGrid = VisualTreeHelper.GetChild(MainWorkSpace, 0) as Grid;
Кстати, ещё не сказал, вот ошибка:
Кликните здесь для просмотра всего текста
Указанный индекс вышел за границы массива, или дочерний объект с индексом не определен. Не вызывайте данный метод, если метод VisualChildrenCount возвращает значение 0, указывая на отсутствие дочерних элементов у элемента Visual.


В случае если мы загрузим шаблон
C#
1
MainWorkSpace.Template = FindResource("GridWorkWithRecup") as ControlTemplate;
и без дальнейших манипуляций с новым содержимым завершить работу обработчика то на окне отобразится желаемый результат.

Нашёл интересную фичу правда ещё не понял как бы её правильно обработать:
Если написать
C#
1
MessageBox.Show(MainWorkSpace.Template.LoadContent().ToString());
Именно в MessageBox (т.к. присвоить значения string переменной результата не дало!), пробовал while-ом заглушку ставить, ну и функция НЕ асинхронная, то есть await-ом тоже дождаться нет возможности.
То мы получим загруженный новый контент в ContentControl и в том же обработчике сможем корректно с ним работать.
C#
1
2
3
MainWorkSpace.Template = FindResource("GridWorkWithRecup") as ControlTemplate;
MessageBox.Show(MainWorkSpace.Template.LoadContent().ToString());
workGrid = VisualTreeHelper.GetChild(MainWorkSpace, 0) as Grid;
Кстати, сообщение отображает: System.Windows.Control.Grid

Вопрос: как загрузить динамически шаблон в ContentControl и сразу его обработать (\работать с его содержимым), может как то можно использовать ту фичу которую опытным путём нашёл?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2015, 16:47
Ответы с готовыми решениями:

Как динамически загрузить библиотеку
Был код на VC++ 6.0: HMODULE libraryHandle = LoadLibraryEx( libraryName, 0,...

Как динамически загрузить сборку по ссылке
Пытаюсь загрузить dll-сборку. Ссылку на сборку получаю из textBox1.Text. Assembly dll_1 =...

Как динамически загрузить DLL в консольном приложении?
Знаю что в WF можно сделать в классе Program: static class Program { ///...

Как загрузить динамически в форму элемент управления?
Можно ли во время работы в форму загрузить какой нибудь ЭУ, CoomandButton, и как это сделать?

16
Жуткая тВарЬ
393 / 328 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
01.03.2015, 23:31 2
Вам надо скинуть проект -
Цитата Сообщение от DarkOrk Посмотреть сообщение
значение 0, указывая на отсутствие дочерних элементов у элемента Visual
Без самого проекта сложно сказать - у меня много вопросов по коду, но на вскидку Вы скорее всего слишком рано вызываете VisualTreeHelper.GetChild, дождитесь загрузки формы (событие Loaded) а потом вызывайте метод...
0
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
02.03.2015, 10:42  [ТС] 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
new Thread(() =>
                    {
                        bool fl = false;
                        while (!fl)
                            this.Dispatcher.Invoke(new Action(delegate()
                            {
                                fl = VisualTreeHelper.GetChildrenCount(MainWorkSpace) >0;
                            }));
                        this.Dispatcher.Invoke(new Action(delegate()
                        {
                            workGrid = VisualTreeHelper.GetChild(MainWorkSpace, 0) as Grid;
                            ((workGrid.Children[1] as ScrollViewer).Content as StackPanel).Children.Add(new Image() { Source = tmp.image, Height = 120, Width = 120 });
                        }));
                    }).Start();
вот есть решение проблемы, но оно такое.. "костыльное" как по мне. А чище вариант кто-то подкинуть может?
0
Жуткая тВарЬ
393 / 328 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
02.03.2015, 10:49 4
Так для начала и прежде чем редактировать сообщение учтите, что на почту приходит оригинал текста который Вы тут недавно вбили с разметкой...посмотрел +)

Давайте с начала что за переменная у Вас MainWorkSpace, когда и как Вы ее получаете, аналогично workGrid?

Добавлено через 2 минуты
Цитата Сообщение от DarkOrk Посмотреть сообщение
while (!fl)
Это не костыль - это что не есть дерьмокод - Вы грузите по полной процессор пока не получите результат
0
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
02.03.2015, 10:59  [ТС] 5
XML
1
<ContentControl Name="MainWorkSpace"/>
C#
1
private Grid workGrid;
1й - напрямую, т.к. он является частью стат. разметки
2й - не получаю, а только хочу получить.

С
Цитата Сообщение от amarf Посмотреть сообщение
while (!fl)
да, но как бы ещё вариантов других некто не предложил.

Разметку удалил, т.к. не тот кусок кода вставил.
0
Жуткая тВарЬ
393 / 328 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
02.03.2015, 11:12 6
Поиск ресурсов выполняется не по имени а по ключу, по этому
XML
1
2
3
4
        <ContentControl x:Key="Asd" x:Name="MainWorkSpace">
            <Grid Background="Yellow">
            </Grid>
        </ContentControl>
Во вторых Вы в коде ищете ControlTemplate а надо искать ContentControl по этому:
C#
1
2
3
4
5
6
7
            var AAAAA = this.FindResource("Asd") ;
            var GRID = ((ContentControl)AAAAA).Content;
 
            if (GRID is Grid)
            {
 
            }
Добавлено через 30 секунд
Я думаю тут все просто и без вопросов...
0
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
02.03.2015, 11:21  [ТС] 7
Цитата Сообщение от amarf Посмотреть сообщение
Я думаю тут все просто и без вопросов...
Как бы да и как бы нет.

Зачем мне искать ContentControl если он является частью стат. разметки? Я его могу получить напрямую - по имени (MainWorkSpace)

Я методом FindResource по ключу.

Проблема не в том что я не могу получить обвёртки, а в том что я не могу получить содержимое.
0
Жуткая тВарЬ
393 / 328 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
02.03.2015, 11:28 8
Цитата Сообщение от DarkOrk Посмотреть сообщение
Проблема не в том что я не могу получить обвёртки, а в том что я не могу получить содержимое.
Честно говоря, я не понимаю Вашей проблемы - либо ее четко и полностью надо описать, либо мы тут будем заниматься догадками - из Ваших постов выше толком ни чего не понять, что необходимо получить и где оно создается...
0
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
02.03.2015, 11:48  [ТС] 9
Цитата Сообщение от amarf Посмотреть сообщение
из Ваших постов выше толком ни чего не понять
Читаем "стартовый пост"

Проблема в том что в обработчике (поф в каком, но в моём случае это Drop ивент) я присваиваю элементу стат. разметки ContentControl с именем MainWorkSpace в свойство Template новый шаблон (новый для данного контрола, а вообще он создан в стат. разметке, в разделы Window.Resources) с именем GridWorkWithRecup.

Проблема в том что в момент присвоения нового шаблона (в том же обработчике, в тот же момент времени) я хочу отредактировать его, изначально желание было сделать всё в стиле:
Контент контрол -> новый шаблон -> Контент контрол.чилдрен.фёрст -> as Grid -> edit
0
Жуткая тВарЬ
393 / 328 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
02.03.2015, 13:21 10
Проблему понял, но решение ее хитрое, просто изменить разметку я не знаю как, а вот создать динамический и подменять шаблон вполне...ну если создавать в коде то и все элементы будут доступны..
Цитата Сообщение от DarkOrk Посмотреть сообщение
LoadContent()
Создает экземпляр именно содержимого а не сам шаблон, по этому можно его создать, изменить, потом создать динамически ControlTemplate и запихнуть туда наше содержимое, далее сделать подмену в ContentControl...
0
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
02.03.2015, 13:58  [ТС] 11
Цитата Сообщение от amarf Посмотреть сообщение
...ну если создавать в коде то и все элементы будут доступны..
Сразу так и думал делать, но остановился на том что это не кошерный вариант.

Цитата Сообщение от amarf Посмотреть сообщение
Создает экземпляр именно содержимого а не сам шаблон, по этому можно его создать, изменить, потом создать динамически ControlTemplate и запихнуть туда наше содержимое, далее сделать подмену в ContentControl...
Попробую так сделать, ну, а мало ли )
0
Жуткая тВарЬ
393 / 328 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
02.03.2015, 15:48 12
Один из вариантов решения (может и не самый удачный):
XML
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
<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" x:Class="TreeViewHelper1.MainWindow" 
        Title="MainWindow" Height="350" Width="525" Drop="Window_Drop">
 
    <Window.Resources>
        <ContentControl x:Key="Asd" x:Name="MainWorkSpace">
            <ContentControl.Template>
                <ControlTemplate>
                    <StackPanel Background="Yellow">
                        <Button Background="Transparent" Margin="15" Width="150" Height="80" Content="OPA1"/>
                        <Button Background="Transparent" Margin="15" Width="150" Height="80" Content="OPA2"/>
                    </StackPanel>
                </ControlTemplate>
            </ContentControl.Template>
        </ContentControl>
 
        <ControlTemplate x:Key="ASDDD">
            <Grid Background="#FF009E82" x:Name="gr">
                <Button Background="Red" Width="250" Height="50" Content="New Template"/>
            </Grid>
        </ControlTemplate>
    </Window.Resources>
 
 
    <Grid>
        <ContentControl Content="{StaticResource Asd}" Width="300" Height="300"/>
        <Button Content="Button" HorizontalAlignment="Left" Height="32" Margin="436,196,0,0" VerticalAlignment="Top" Width="56" Click="Button_Click_1"/>
    </Grid>
</Window>
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
private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            //Наш ContentControl
            ControlTemplate NewTemplate = (this.FindResource("ASDDD") as ControlTemplate);
            //Получаем содержимое ContentControl в виде DependencyObject
            var content = NewTemplate.LoadContent();
 
            //меняем ФОН
            if (content is Grid)
            {
                (content as Grid).Background = Brushes.HotPink;
            }
 
            //Получаем DependencyObject в виде xaml текста
            StringBuilder sb = new StringBuilder();
            XmlWriter writer = XmlWriter.Create(sb, new XmlWriterSettings() { Indent = true });
            XamlWriter.Save(content as Grid, writer);
            
            //подготавливаем строку
            string ItemTemplate = "<ControlTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\">" +
                sb.ToString() +
                "</ControlTemplate>";
 
            //в строке остаеться часть от xml по этому удаляем ее (хотите думайте сами как оптимизировать)
            ItemTemplate = ItemTemplate.Replace("<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n", "");
 
            //создаем StringReader для xaml
           XmlReader xmlReader = XmlReader.Create(new StringReader(ItemTemplate));
 
           //Наш ContentControl которому подменяем Template
           ContentControl CurControl = this.FindResource("Asd") as ContentControl;
 
 
           CurControl.Template = (ControlTemplate)XamlReader.Load(xmlReader);
        
        }
0
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
02.03.2015, 22:21  [ТС] 13
Как не странно но на тот момент когда я увидел ваш ответ, я нашёл подобный вариант решения на стороннем сервисе... к сожалению ни с вашим ни с чужим нечего не получилось. Вернее как - получилось но не до конца (сделаю всё с помощью вашего примера т.с. что бы проще было понимать друг друга)

Разметку скидывать не буду, т.к. по сути своей она такая же как и у вас. Вот обработчик:
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
private void MainWorkSpace_Drop(object sender, DragEventArgs e)
        {
            DragData tmp = (DragData)e.Data.GetData(typeof(DragData));
            if (engine == null)
            {
                if (FindResource("GridTempWithoutRecup").Equals(MainWorkSpace.Template))
                {
                    StringBuilder sb = new StringBuilder();
                    XmlWriter writer = XmlWriter.Create(sb, new XmlWriterSettings() { Indent = true });
 
                    Grid grid = (FindResource("GridWorkWithRecup") as ControlTemplate).LoadContent() as Grid;
 
                    /***********************опасная зона***************************/
                    StackPanel sp = (grid.Children[2] as ScrollViewer).Content as StackPanel;
                    sp.Children.Add(GetNewLightSep());
                    Image img = new Image() { Source = tmp.image, Height = 120 };
                    sp.Children.Add(img);
                    sp.Children.Add(GetNewLightSep());
                    /***********************опасная зона***************************/
 
                    XamlWriter.Save(grid, writer);
 
                    
                    string ItemTemplate = "<ControlTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\">" +
                        sb.Remove(0,41) +
                        "</ControlTemplate>";
                    
                    XmlReader xmlReader = XmlReader.Create(new StringReader(ItemTemplate));
 
                   MainWorkSpace.Template = (ControlTemplate)XamlReader.Load(xmlReader);
           }
    }
}
Ошибка
Кликните здесь для просмотра всего текста
Инициализация "System.Windows.Media.Imaging.BitmapImage" вызвала исключение.

Значения ItemTemplate
Кликните здесь для просмотра всего текста
<ControlTemplate xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><Grid Name="GridWrokSpace" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Image Source="pack://application:,,,/test3_2;component/Images/Other/AR-B-R.png" Width="120" Grid.Column="0" />
<Label FontFamily="Gill Sans MT" FontSize="16" FontWeight="Bold" Padding="30,30,30,30" VerticalAlignment="Center" Grid.Column="0">
<Label.Effect>
<DropShadowEffect ShadowDepth="0" Color="#FFFDFDFD" Direction="200" BlurRadius="10" />
</Label.Effect>Outdoor</Label>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Hidden" Grid.Column="1">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<ContentControl>
<ContentControl.Template>
<ControlTemplate>
<Border BorderThickness="10,10,10,10" BorderBrush="#FFBFBFBF" Name="LightSep" Width="20">
<Border.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseEnter">
<BeginStoryboard>
<Storyboard>
<Storyboard.Children>
<ColorAnimation To="#FFFFFF00" Duration="00:00:00.5000000" Storyboard.TargetName="LightSep" Storyboard.TargetProperty="BorderBrush.Color" />
</Storyboard.Children>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseLeave">
<BeginStoryboard>
<Storyboard>
<Storyboard.Children>
<ColorAnimation To="#FFBFBFBF" Duration="00:00:00.5000000" Storyboard.TargetName="LightSep" Storyboard.TargetProperty="BorderBrush.Color" />
</Storyboard.Children>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Border.Triggers>
<Border.Effect>
<BlurEffect Radius="10" />
</Border.Effect>
</Border>
</ControlTemplate>
</ContentControl.Template>
</ContentControl>
<Image Height="120">
<Image.Source>
<BitmapImage BaseUri="{x:Null}" />
</Image.Source>
</Image>
<ContentControl>
<ContentControl.Template>
<ControlTemplate>
<Border BorderThickness="10,10,10,10" BorderBrush="#FFBFBFBF" Name="LightSep" Width="20">
<Border.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseEnter">
<BeginStoryboard>
<Storyboard>
<Storyboard.Children>
<ColorAnimation To="#FFFFFF00" Duration="00:00:00.5000000" Storyboard.TargetName="LightSep" Storyboard.TargetProperty="BorderBrush.Color" />
</Storyboard.Children>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseLeave">
<BeginStoryboard>
<Storyboard>
<Storyboard.Children>
<ColorAnimation To="#FFBFBFBF" Duration="00:00:00.5000000" Storyboard.TargetName="LightSep" Storyboard.TargetProperty="BorderBrush.Color" />
</Storyboard.Children>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Border.Triggers>
<Border.Effect>
<BlurEffect Radius="10" />
</Border.Effect>
</Border>
</ControlTemplate>
</ContentControl.Template>
</ContentControl>
</StackPanel>
</ScrollViewer>
<Image Source="pack://application:,,,/test3_2;component/Images/Other/AR-R-R.png" Width="120" Grid.Column="2" />
<Label Foreground="#FF000000" FontFamily="Gill Sans MT" FontSize="16" FontWeight="Bold" Padding="30,30,30,30" VerticalAlignment="Center" Grid.Column="2">
<Label.Effect>
<DropShadowEffect ShadowDepth="0" Color="#FFFDFDFD" Direction="400" BlurRadius="8" />
</Label.Effect>Supply</Label>
</Grid></ControlTemplate>


Тут явно проблема в передачи картинки (потому что без редактирования и добавления имеджа, всё работает), вопрос, а как её поправить если вон тот путь который прописывается после добавления в грид имеджа, я не знаю, в структуре которая приносит картинку (DragData) только ImageSource.

Так же уточню, что проблема появляется после завершения всех работ в обработчике - то, есть, когда начинается инициализация "нового" шаблона.

Добавлено через 1 час 18 минут
А вот и он - "СТУПОР"

Добавил
C#
1
ItemTemplate = ItemTemplate.Replace("pack://application:,,,/test3_2;component/", "");
Думал перестанет выёживатся... а нефига

А убрал строку
C#
1
Image img = new Image() { Source = tmp.image, Height = 120 };
и просто для теста поставил
C#
1
 Image img = new Image() { Height = 120, Width=50};
работает. вафли=(
0
Жуткая тВарЬ
393 / 328 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
02.03.2015, 22:55 14
Вам в свой класс данных надо загружать картинку в поле/свойство с типом BitmapSource тогда все будет окей, но не ручаюсь +) Вы бы скинули мне на мыло Ваш проект я бы покопался, а так, что альцем в небо

Добавлено через 1 минуту
Просто я не знаю как вы заполняете свойство с картинкой в своем классе....!

Добавлено через 15 минут
А если не секрет Вы что пытаетесь реализовать ??? Какая идея?
0
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
02.03.2015, 23:19  [ТС] 15
Скажим так "сикрет" (интеллектуальная собственность, к тому же не моя личная), а в общем "реализация визуального построения схем"

Цитата Сообщение от amarf Посмотреть сообщение
Вам в свой класс данных надо загружать картинку в поле/свойство с типом BitmapSource тогда все будет окей, но не ручаюсь
Это вы о чём конкретно??
Картинку переношу в поле структуры с типом ImageSource.

Вот структура для переноса данных драгаИдропа
C#
1
2
3
4
5
6
        private struct DragData
        {
            public string name;
            public string groupName;
            public ImageSource image;
        }
Почему-то он ругается... я ошибки которые касаются "высших сил компилятора" ещё не силён разбирать.

Что не так в выше приведённом коде?

Добавлено через 8 минут
А, увидел фразу
Цитата Сообщение от amarf Посмотреть сообщение
Просто я не знаю как вы заполняете свойство с картинкой в своем классе
C#
1
2
3
4
5
6
 DragData data = new DragData()
            {
                name = img.ToolTip as string,
                groupName = img.Tag as string,
                image = img.Source
            };
Нечего сверх естественного.
0
Жуткая тВарЬ
393 / 328 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
03.03.2015, 00:05 16
Попробуйте заменить:
C#
1
Image img = new Image() { Source = tmp.image, Height = 120 };
на
C#
1
Image img = new Image() { Source = new BitmapImage(new Uri(tmp.image.ToString())), Height = 120 };
Добавлено через 7 минут

Добавлено через 27 минут
Честно говоря Я до конца не понимаю проблемы и вообще тот ли Вы путь избрали для ее решения.
Тут же куда то перетаскиваеться элемент данных и как я понял его надо визуализировать - зачем менять теплейт контрола на который его перетаскивают, не проще ли сделать через DataTemplate ???
0
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
03.03.2015, 11:17  [ТС] 17
Смена шаблона нужна для преобразования рабочей области под необходимые нужды в зависимости от ситуации.
DataTemplate - вообще не вижу смысла юзать, т.к. содержимое особо представлять не нужно, просто добавлять в стакпанельку которая с шаблоном.
Хотел статическим шаблоном избавить себя от необходимости писать сотни строк кода создания\заполнения рабочей области из кода... но видимо так и предаётся, т.к. нынешней вариант ещё и подвисает где-то на 1 сек перед отображением.
0
03.03.2015, 11:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2015, 11:17
Помогаю со студенческими работами здесь

При установке шаблон,ошибка: этот шаблон попытался загрузить составляющую сборку
Здравствуйте! Пытаюсь добавить в vs 2010 ADO.NET Entity Data Model и вот какая досада, выскакивает...

Как загрузить свой шаблон на сайт?
Добрый день! Подскажить как закрепить свой шаблон на работующий сайт. А то не получается( я...

Как загрузить шаблон (html или WP) на Themeforest?
Доброго времени суток форумчане! Столкнулся с проблемой связанной с themeforest. Сделал тему....

Как загрузить шаблон для wordpress на themeforest?
Как загрузить шаблон для wordpress на themeforest?


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru