Как сделать горизонтальное выпадающее меню, как это в WP
Мне нужно, чтобы показать элементы в раскрывающемся меню в строке. Как я могу это сделать?
Как сделать горизонтальное выпадающее меню, как это в WP
Мне нужно, чтобы показать элементы в раскрывающемся меню в строке. Как я могу это сделать?
Возможно, вам, скорее всего, понадобится построить Control самостоятельно. Вы можете создать составной элемент управления, состоящий из <Button>
и <ListBox>
, чтобы подражать тому, что вы пытаетесь сделать. На самом деле это довольно легко.
Например:
<Button Content="{Binding SelectedItem.Song, FallbackValue=Show List, ElementName=myListBox}" Height="100" Click="Button_Click"></Button>
<ListBox x:Name="myListBox" Height="60" Visibility="Collapsed">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Red" BorderThickness="1" Height="50" Padding="15,0">
<TextBlock VerticalAlignment="Center">
<Run Text="{Binding Song}"></Run>
</TextBlock>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
То, что я здесь запрограммирован Кнопку с его Content
привязываться к SelectedItem в ListBox, который имеет .Song собственности, если не выбран ни один он возвращается в «Показать список "
Когда пользователь нажимает кнопку, он должен скрывать/показывать окно списка в зависимости от текущей видимости.
private void Button_Click(object sender, RoutedEventArgs e)
{
if (this.myListBox.Visibility == System.Windows.Visibility.Collapsed)
{
this.myListBox.Visibility = System.Windows.Visibility.Visible;
}
else
this.myListBox.Visibility = System.Windows.Visibility.Collapsed;
}
Ваша задача, чтобы обернуть все это внутри хороший UserControl или вы можете просто использовать его как есть.
Вот некоторые скриншоты его в действии: