WPF Combobox в кнопках и изменениях Scroll InterFace, привязка данных к пользовательской? нравится эта фотография загрузки - PullRequest
0 голосов
/ 13 марта 2020

Эта модель

public class Media
{
    private List<string> mediaName;

    public List<string> MediaName
    {
        get { return mediaName; }
        set { mediaName = value; }
    }

}

этот код xaml

<ComboBox x:Name="MediaCombo" ItemsSource="{Binding Media}" SelectionChanged="MediaCombo_SelectionChanged">
  <ComboBox.ItemTemplate>
    <DataTemplate>
     <TextBlock Text="{Binding}" />
    </DataTemplate>
  </ComboBox.ItemTemplate>

Я не могу найти способ, contextmenu .. combobox ... et c .. Как я

как сделать понравившуюся картинку? Combobox Image

1 Ответ

0 голосов
/ 13 марта 2020

Добро пожаловать на SO!

Не удивляйтесь, если этот вопрос будет помечен как закрытый, этот сайт предназначен для ответов на очень конкретные c вопросы , а не на "как мне сделать сделать это? "

Чтобы начать, вам нужно будет создать свой элемент управления для замены внешнего вида по умолчанию. Если вы поместите курсор редактирования над объявлением ComboBox в XAML, go на странице свойств, щелкните на маленьком окошке справа от Разное-> Шаблон, затем выберите «Преобразовать в новый ресурс», после чего VS создаст шаблон для элемента управления для вы. (В случае ComboBox вам, вероятно, также потребуется добавить ссылку на проект в PresentationFramework.Aero2).

Созданный шаблон элемента управления будет содержать ScrollViewer с x:Name="DropDownScrollViewer", поэтому повторите этот процесс. на этом, чтобы преобразовать этот элемент в новый шаблон с именем ScrollViewerControlTemplate1. Это будет иметь элемент управления для фактической вертикальной полосы прокрутки с x:Name="PART_VerticalScrollBar", поэтому повторите еще раз, чтобы получить окончательный шаблон элемента управления с именем ScrollBarControlTemplate1. Это полоса прокрутки, для которой вы хотите изменить внешний вид, поэтому вы можете просто переопределить ее содержимое, чтобы получить нужный эффект, например:

    <ControlTemplate x:Key="ScrollBarControlTemplate1" TargetType="{x:Type ScrollBar}">
        <Border BorderBrush="{DynamicResource VS.Environment.ScrollBarBorderBrush}" Uid="Border_3" Padding="5">
            <Grid Uid="Grid_1">
                <Border BorderThickness="1" BorderBrush="Gray" CornerRadius="5"/>
                <Track x:Name="PART_Track" IsDirectionReversed="True" Uid="PART_Track">
                    <Track.Thumb>
                        <Thumb Uid="Thumb_1">
                            <Thumb.Template>
                                <ControlTemplate>
                                    <Border Background="Gray" CornerRadius="5"/>
                                </ControlTemplate>
                            </Thumb.Template>
                        </Thumb>
                    </Track.Thumb>
                </Track>
            </Grid>
        </Border>
    </ControlTemplate>

..., что приведет к следующему:

enter image description here

Я не нажимал кнопки пейджинга, но это в основном та же идея. Найдите элементы типа RepeatButton в исходном ScrollBarControlTemplate1, который создается (который я удалил), и поместите их в ScrollViewerControlTemplate1 вместо ScrollContentPresenter, который содержит сами элементы списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...