Рейтинг@Mail.ru

Как сохранить пробелы в XAML

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

Чтобы сохранить пробелы в разметке XAML, необходимо в нужном узле задать атрибут:

xml:space="preserve"

Далее использовать пробелы и/или символы переноса строки:




x0A – это символ переноса строки в шестнадцатеричном фрмате в таблице символов ASCII с префиксом &#, который подсказывает это процессору XAML. Аналогичным образом можно использовать и другие непечатные символы из таблицы ASCII.

Например:

<TextBlock Text="Строка 1 &#x0A; Строка 2" xml:space="preserve" />
Подробнее ...

Как сделать перенос строки в XAML

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

Чтобы сохранить перенос строки в XAML:

    <sys:String x:Key="myString" xml:space="preserve">My String with &#13; carry return</sys:String>

Здесь:

&#13;
– символ переноса строки в таблице ASCII;
xml:space="preserve"
– директива, указывающя парсеру XAML, что пробельные символы нужно сохранить. Если её не указать, парсер удалит все «лишние» пробелы, в т.ч. переносы строк.
Подробнее ...

Как сделать пункт меню с выравниванием по правому краю (WPF)

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

Чтобы сделать в WPF в панели меню какие-то пункты с выравниваеним по правому краю (например, меню «Справка» или «О программе»), можно описать в XAML произвольную панель элементов, как в примере ниже:

<Menu>

    <Menu.ItemsPanel>
        <ItemsPanelTemplate>
            <DockPanel />
        </ItemsPanelTemplate>
    </Menu.ItemsPanel>

    <MenuItem Header="Item1" />
    <MenuItem Header="Item2" />
    <MenuItem Header="Справка" HorizontalAlignment="Right" />
</Menu>
Подробнее ...

Как создать безрамочное окно в WPF

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

Чтобы создать окно без рамок и без стандартных элементов управления, в файле разметки в свойствах окна достаточно добавить 3 атрибута: WindowStyle, AllowsTransparency и Background.

<Window x:Class="BorderlessWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        WindowStyle="None"
        AllowsTransparency="True"
        Background="Transparent"
        MouseLeftButtonDown="Window_MouseLeftButtonDown"
        Title="Hello, Soltau.ru"
        Width="200" Height="200">
    <Grid>
        <Rectangle Fill="Yellow" Opacity="0.7" RadiusX="40" RadiusY="40" />
        <Button Width="100" Height="30" Content="Закрыть" Click="Button_Click" />
    </Grid>
</Window>

Для удобства пользователя желательно добавить возможность закрыть окно, а также перетаскивать его по рабочему столу:

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

Выглядеть это будет примерно так:

Окно без рамок в WPF
Окно без рамок в WPF
Подробнее ...

Запрет выделения элементов ListBox / ListView (WPF)

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

Чтобы запретить выделение элементов элемента ListBox или ListView, можно определить это с помощью такого стиля:

<ListBox.ItemContainerStyle>
    <Style TargetType="ListBoxItem">
         <Setter Property="Focusable" Value="False" />
    </Style>
</ListBox.ItemContainerStyle>

Второй вариант – использовать вместо ListBox элемент ItemsControl.

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

Объединение словарей и стилей в секции ресурсов в XAML

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

Чтобы в секции ресурсов документа XAML использовать и словари, и стили, можно сделать следующее:

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>

        <!-- Словарь стилей -->
        <ResourceDictionary Source="Dictionaries\WidgetTmiDictionary.xaml" />
    
        <!-- Определение дополнительных стилей -->
        <ResourceDictionary>
	        <Image Source="Images\1.png" x:Key="ic1" />
	        <Image Source="Images\2.png" x:Key="ic2" />                  
        </ResourceDictionary>

        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>
Подробнее ...

Как определить текущую привязку Binding элемента UI

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

Допустим, что мы задали в XAML для текстового элемента TextBlock привязку и хотим узнать её в застраничном коде. Это делается так:

    Dim be As BindingExpression = myTextBlock.GetBindingExpression(TextBlock.TextProperty)
    Dim bnd As Binding = be.ParentBinding
    Dim bindingPath As String = bnd.Path.Path
Подробнее ...
Подписаться на этот канал RSS