Рейтинг@Mail.ru

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

Published in Полезные советы

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

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

Здесь:

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

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

Published in Полезные советы

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

<Menu>

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

    <MenuItem Header="Item1" />
    <MenuItem Header="Item2" />
    <MenuItem Header="Справка" HorizontalAlignment="Right" />
</Menu>
Читать далее...

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

Published in Полезные советы

Чтобы создать окно без рамок и без стандартных элементов управления, в файле разметки в свойствах окна достаточно добавить 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)

Published in Полезные советы

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

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

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

Читать далее...

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

Published in Полезные советы

Чтобы в секции ресурсов документа 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

Published in Полезные советы

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

    Dim be As BindingExpression = myTextBlock.GetBindingExpression(TextBlock.TextProperty)
    Dim bnd As Binding = be.ParentBinding
    Dim bindingPath As String = bnd.Path.Path
Читать далее...

Аналог StartupPath в WPF

Published in Полезные советы

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

    Dim startup As String = Application.StartupPath

В WPF данная возможность не работает. Теперь для определения текущей директории приложения нужно вызвать следующий код:

    Dim startup As String = System.AppDomain.CurrentDomain.BaseDirectory
Читать далее...
Subscribe to this RSS feed
  1. Arduino это...
  2. Arduino это...
  3. Arduino это...
Отличный способ начать знакомство с электроникой, микроконтроллерами и программированием!
Замечательное средство для создания собственных электронных устройств, которые пригодятся в быту или для развлечения!
Уникальный конструктор, для которого разработаны десятки совместимых датчиков и модулей!
next
prev