Рейтинг@Mail.ru

Перенос текста TextWrapping в XAML

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

Зачастую нужно чтобы текст переносился на следующую строку, занимая всю ширину родительского элемента. За это отвечает свойство TextWrapping.Распространённые случаи:

<ListView HorizontalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Disabled">

Элементы ListViewItem при этом должны быть типа TextBlock, а горизонтальная полоса прокрутки HorizontalScrollBar отключена.

Или другой случай:

<GroupBox.Header>
  <TextBlock TextWrapping="Wrap" Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type GroupBox}}, Path=ActualWidth}" />
</GroupBox.Header>

Вместо GroupBox.Header может быть любой контейнер. Важно, что ширина устанавливается с помощью привязки к актуальной ширине ActualWidth родителя.

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

Поиск определённого окна в приложении .NET

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

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

For Each wnd As Window In Application.Current.Windows
    If wnd.GetType.Equals(GetType(MyParentWindow)) Then
        parentWindow = CType(wnd, MyParentWindow)
        Exit For
    End If
Next
Читать далее...

Как использовать UserControl в качестве шаблона для ListViewItem

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

Чтобы использовать собственный пользовательский элемент управления UserControl в качестве шаблона элемента ListViewItem или ListBoxItem, нужно следующее:

<ListBox ItemsSource="{Binding MyCollection}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <local:MyUserControl />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Здесь local – это пространство имён вашей сборки. Например: <xmlns:local="clr-namespace:MyApplication" />>.

При этом в MyUserControl не следует задавать контекст данных DataContext.

Читать далее...
Subscribe to this RSS feed