Чтобы создать отсортированный словарь в .NET имеется тип SortedDictionary. А что если нужно отсортировать словарь в порядке убывания? Для этой цели есть перегруженный вариант конструктора, который в качестве одного из параметров принимает объект типа Comparer:
Private MyDict As New SortedDictionary(Of Integer, Object)(Comparer(Of Integer).Create(Function(x, y) y.CompareTo(x)))
Comparer в конструкторе обращает порядок элементов, сортируя в порядке убывания ключей.
Чтобы задать иконку окна из ресурсов приложения, можно поступить так:
Dim w As New Window() With {
.Icon = BitmapFrame.Create(Application.GetResourceStream(New Uri("Images/myIcon.ico", UriKind.RelativeOrAbsolute)).Stream)
}
Здесь Images/myIcon.ico – это путь к ресурсу иконки в структуре директорий проекта.
При возникновении ошибки DeferrableContent, например:
Exception: Задание свойства "System.Windows.ResourceDictionary.DeferrableContent" вызвало исключение.: номер строки XX и позиция в строке YY.
InnerException: ArgumentException: Элемент уже добавлен. Ключ в словаре: "System.Windows.Controls.ComboBox" Добавляемый ключ: 'System.Windows.Controls.ComboBox'
Допустим, мы хотим в XAML создать меню, содержащее список элементов, в котором одновременно может быть выбран только один (поведение наподобие RadioButton).
Чтобы сохранить пробелы в разметке XAML, необходимо в нужном узле задать атрибут:
xml:space="preserve"
Далее использовать пробелы и/или символы переноса строки:


x0A – это символ переноса строки в шестнадцатеричном фрмате в таблице символов ASCII с префиксом &#, который подсказывает это процессору XAML. Аналогичным образом можно использовать и другие непечатные символы из таблицы ASCII.
<sys:String x:Key="myString" xml:space="preserve">My String with carry return</sys:String>
Здесь:
– символ переноса строки в таблице ASCII;
xml:space="preserve"
– директива, указывающя парсеру XAML, что пробельные символы нужно сохранить. Если её не указать, парсер удалит все «лишние» пробелы, в т.ч. переносы строк.
Чтобы сделать в WPF в панели меню какие-то пункты с выравниваеним по правому краю (например, меню «Справка» или «О программе»), можно описать в XAML произвольную панель элементов, как в примере ниже:
Чтобы создать окно без рамок и без стандартных элементов управления, в файле разметки в свойствах окна достаточно добавить 3 атрибута: WindowStyle, AllowsTransparency и Background.
Для удобства пользователя желательно добавить возможность закрыть окно, а также перетаскивать его по рабочему столу:
Public Class BorderlessWindow
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
Me.Close()
End Sub
Private Sub Window_MouseLeftButtonDown(sender As Object, e As MouseButtonEventArgs)
Me.DragMove()
End Sub
End Class