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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как получить имя элемента RichTextBox, Получение имени элемента RichTextBox 
:(
    Опции темы
vinograd2008
Дата 4.8.2011, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 7.12.2008

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



Здравствуйте. Есть 2 проекта WPF. В одном есть UserControl а во втором Window, в Window вставляется UserControl в UserControl есть элемент RichTextBox с именем richTextBox1. Как получить имя элемента RichTextBox из UserControl второго проекта программно в классе Window первого проекта.
PM MAIL   Вверх
ДобренькийПапаша
Дата 4.8.2011, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



Цитата(vinograd2008 @  4.8.2011,  14:53 Найти цитируемый пост)
Как получить имя элемента RichTextBox из UserControl второго проекта программно в классе Window первого проекта. 

Чиво?))) (Хм, это конец рабочего дня, или вы, действительно, так непонятно написали?)

Это сообщение отредактировал(а) ДобренькийПапаша - 4.8.2011, 15:02


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
vinograd2008
Дата 4.8.2011, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 7.12.2008

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



У меня есть Solution в нем два проекта WpfApllication1  и WpfApplication2, в WpfApllication2 находится UserControl

Код

<UserControl x:Class="WpfApplication2.MW"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:my="clr-namespace:WpfApplication2;assembly=WpfApplication2"
        xmlns:custom="clr-namespace:WpfApplication2"
        Height="311" Width="522" Name="root">
<Grid>
  <RichTextBox Name="richTextBox1" Margin="-5,0,0,33" Height="258" VerticalAlignment="Bottom" />
</Grid>
</UserControl>


А в WpfApllication1 находится Window в который вставлен UserControl в котором есть элемент RichTextBox и имя у этого элемента задано richTextBox1

Код

    <Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:r="clr-namespace:WpfApplication2;assembly=WpfApplication2"
        Title="Editor" Height="371" Width="544" WindowStyle="ToolWindow">
<Grid>
  <r:MW Margin="0,20,8,6" Grid.ColumnSpan="3" r:MW.Name="richTextBox1" />
    </Grid>
</Window>


Как получить имя элемента RichTextBox то есть richTextBox1 в классе MainWindow из другого класса MW
проекта WpfApplication2?
PM MAIL   Вверх
RastaDja
Дата 4.8.2011, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 1.11.2010

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



рекурсивным поиском ищи
Код

public void FindName(DependencyObject node)
        {
            System.Collections.IEnumerable allObj = LogicalTreeHelper.GetChildren(node);
            foreach (Object obj in allObj)
            {
                if (obj.GetType().ToString() == "System.Windows.Controls.RichTextBox")
                {
                    RichTextBox tmpRBox = (RichTextBox )obj;
                    String name = tmpRBox.Name;      //   <-------- Вот тут твое имя, но учти, сколько Текст боксов, столько имен
                    // break;                                        //   а это, если ты уверен, что нет больше одного бокса
                }
                try
                {
                    FindName((DependencyObject)obj);
                }
                catch   //  исключение, если обьект не есть контейнером
                {
                }
            }
        }


Добавлено @ 16:52
а если имя знаешь тогда
Код

RichTextBox  tmpRBox = (RichTextBox )LogicalTreeHelper.FindLogicalNode(rootElement, "richTextBox1");


Это сообщение отредактировал(а) RastaDja - 4.8.2011, 16:54


--------------------
The more closely you look at one thing, the less closely can you see something else.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




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


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

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