Рейтинг@Mail.ru

WPF: Как получить список всех элементов UIElement заданного типа

Опубликовано в Полезные советы

Напишем метод, который будет возвращать список всех элементов некоторого контейнера:

''' <summary>
''' Возвращает все элементы UIElement заданного типа.
''' </summary>
Public Shared Iterator Function FindVisualChildren(Of T As DependencyObject)(ByVal depObj As DependencyObject) As IEnumerable(Of T)
    If (depObj IsNot Nothing) Then
        For i As Integer = 0 To VisualTreeHelper.GetChildrenCount(depObj) - 1
            Dim child As DependencyObject = VisualTreeHelper.GetChild(depObj, i)
            If (child IsNot Nothing) AndAlso (TypeOf child Is T) Then
                Yield CType((CObj(child)), T)
            End If
            For Each current As T In MainWindow.FindVisualChildren(Of T)(child)
                Yield current
            Next
        Next
    End If
    Return
End Function

Теперь можно использовать данный метод таким способом (здесь MainWindow – это тот контейнер, список чьих потомков нужно получить):

Dim sameTypeElements as New List(Of ComboBox)
For Each cb As ComboBox In FindVisualChildren(Of ComboBox)(MainWindow)
    sameTypeElements.Add(cb)
Next
Подробнее ...

Можно ли использовать константы условной компиляции в XAML

Опубликовано в Программирование

Мы рассматривали такое мощное средство Visual Studio как константы условной компиляции. Это средство позволяет, в зависимости от значения заданной константы, включать и исключать из исполняемого файла те или иные участки кода. А существует ли аналогичная возможность для разметки XAML?

Подробнее ...

Как в Visual Studio создать повторно используемый фрагмент кода (snippet)

Опубликовано в Программирование

Рассмотрим процесс создания повторно используемого фрагмента кода (сниппета) в Visual Studio 2017 на примере. Создадим сниппет на языке VB.NET, который объявляет объект типа BackgroundWorker() и создаёт для него методы DoWork(), ProcessChanged() и RunWorkerCompleted().

Подробнее ...

Как в Visual Studio делать резервную копию приложения после компиляции

Опубликовано в Полезные советы

Для этого в Visual Studio на странице настроек проекта, в разделе "Компиляция", есть т.н. События построения (Build events). Можно прописать там такую команду:

if $(ConfigurationName) == Debug 
    XCOPY "$(TargetPath)" "c:\Folder B\" /s /d /i /k /r /y
if $(ConfigurationName) == Release 
    XCOPY "$(TargetPath)" "c:\Folder A\_FINAL\" /s /d /i /k /r /y

Тогда отладочные версии скомпилированного приложения будут после компиляции копироваться в папку "Folder B", а релизные – в папку "Folder A".

Подробнее ...

Как быстро импортировать функционал динамической библиотеки в свой проект

Опубликовано в Программирование

Часто перед .NET-программистом возникает задача: использовать функционал динамической библиотеки DLL, написанной другим разработчиком на неуправляемом коде. Подчас функционал этой библиотеки может быть весьма и весьма обширен. Вручную прописывать у себя в проекте каждый класс, функцию, константу и т.д. – очень долго. К счастью, существуют инструменты, частично автоматизирующие этот процесс. Об одном из них мы и поговорим.

Подробнее ...
Подписаться на этот канал RSS