Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
OwenGlendower
Супер-модератор
Эксперт .NET
8762 / 7766 / 3323
Регистрация: 17.03.2014
Сообщений: 15,273
Записей в блоге: 1
#1

FAQ по WPF - C# WPF

03.06.2016, 14:51. Просмотров 7848. Ответов 3
Метки faq, wpf (Все метки)

Здесь находятся ответы на часто задаваемые вопросы по Windows Presentation Foundation (WPF).
Для добавления сюда новых вопросов и ответов обращайтесь к модераторам или в тему обсуждения FAQ.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2016, 14:51
Я подобрал для вас темы с готовыми решениями и ответами на вопрос FAQ по WPF (C# WPF):

WPF async void fun() для событий контролла. (MapCOntrol.WPF)
Задача: Отмечаем чекбокс элементы и рисуем их на карте. При нажатии на...

Открыть WPF внутри другого WPF окна
Добрый день! Имеется задача: В WPF окне (назовем его MainWindow.xaml с...

Вызов окошка WPF из другого окна WPF
Всем доброго времени суток. Подскажите пожалуйста как мне вызвать из главного...

ColorDialog для WPF. Копии всякого старья для WPF
Последние три дня мучился в поисках ColorDialog для WPF. Не стороннего...

Есть ли в WPF полноценная замена GDI+? Чтобы можно было всё, что можно в GDI+? Просто думаю углубляться в работу с изображениями в WPF или GDI.
Ну собственно весь вопрос в заголовке темы.

Чем определяется одинаковость урлов /page?FAQ и /page.php?FAQ
Подскажите, пожалуйста, какая опция php или настройка сервера позволяет не...

3
OwenGlendower
Супер-модератор
Эксперт .NET
8762 / 7766 / 3323
Регистрация: 17.03.2014
Сообщений: 15,273
Записей в блоге: 1
03.06.2016, 15:15  [ТС] #2
Как найти элемент управления по имени на любом уровне вложенности?

В этом может помочь класс System.Windows.Media.VisualTreeHelper и следующая функция:
FindChild<T>
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
/// <summary>
/// Ищет дочерний элемент с указанным типом и именем в визуальном дереве
/// </summary>
/// <param name="parent">Родительский элемент который содержит искомый элемент</param>
/// <typeparam name="T">Тип искомого элемента</typeparam>
/// <param name="childName">Имя искомого элемента</param>
/// <returns>
/// Элемент с искомым именем и типом;
/// Если childName равен null, то первый элемент с указанным типом;
/// null если искомый элемент не найден.
/// </returns>
public static T FindChild<T>(DependencyObject parent, string childName)
    where T : DependencyObject
{
    if (parent == null) return null;
 
    if (parent is T && parent is FrameworkElement && ((FrameworkElement)parent).Name == childName)
    {
        return (T)parent;
    }
 
    int childrenCount = VisualTreeHelper.GetChildrenCount(parent);
    for (int i = 0; i < childrenCount; i++)
    {
        DependencyObject child = VisualTreeHelper.GetChild(parent, i);
        T obj = FindChild<T>(child, childName);
        if (obj != null) return obj;
    }
 
    return null;
}
5
OwenGlendower
Супер-модератор
Эксперт .NET
8762 / 7766 / 3323
Регистрация: 17.03.2014
Сообщений: 15,273
Записей в блоге: 1
12.06.2016, 18:42  [ТС] #3
Как отключить вывод уведомлений о ошибках JavaScript в элементе управления WebBrowser?

Ответ
Добавьте следующую функцию:
C#
1
2
3
4
5
6
7
8
9
10
using System.Reflection;
...
public void HideScriptErrors(WebBrowser wb, bool Hide)
{
    FieldInfo fiComWebBrowser = typeof(WebBrowser).GetField("_axIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);
    if (fiComWebBrowser == null) return;
    object objComWebBrowser = fiComWebBrowser.GetValue(wb);
    if (objComWebBrowser == null) return;
    objComWebBrowser.GetType().InvokeMember("Silent", BindingFlags.SetProperty, null, objComWebBrowser, new object[] { Hide });
}
Затем добавьте подписку на событие Navigated:
C#
1
wb.Navigated += (sender, args) => { HideScriptErrors((WebBrowser)sender, true); };
3
novikov.ea
779 / 701 / 246
Регистрация: 10.06.2011
Сообщений: 1,340
06.10.2016, 10:36 #4
Как исправить ошибку "Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток"?

Ответ
В WPF изменение свойств классов, унаследованных от DispatcherObject (кроме Freezable), возможно только из основного потока программы. Обращение к объектам следует производить через методы Dispatcher.Invoke или Dispatcher.BeginInvoke.
C#
1
2
3
4
this.Dispatcher.Invoke(() =>
{
    /* Код, на котором возникает ошибка */
});
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2016, 10:36
Привет! Вот еще темы с решениями:

FAQ по Qt
В данной теме приведены самые часто задаваемые вопросы по Qt и Qt Creator. ...

FAQ
Не могу скачать документацию...

=FAQ=
Частые вопросы на Изеэлектрониксе, и ответы к ним. В: Что почитать...

FAQ по С++
У кого есть FAQ по библиотекам и входящим в них функциям(что они делают)....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru