Я искал какое-то время в Интернете и здесь, чтобы найти решение по моей проблеме, но я не знаю, почему все решения, которые я пробовал, не работают. Я должен сказать в первую очередь, что я совершенно новый в WPF, поэтому, возможно, это может быть реальной проблемой, но я объясню, чего я хочу достичь.WPF listview - Прозрачный фон по выбору и выделенным элементам
Я строй управления WPF я буду импортировать в другом приложении (которое не является приложение WPF, но я могу добавить элементы управления WPF), этот элемент управлением является простым ListView которым имеет следующие возможности: - прозрачный фон - граница с закругленными углами
Я делаю это потому, что в моем другом приложении у меня есть темный фон с оттенками и я хочу этот контроль, чтобы быть прозрачным, чтобы вы могли видеть фон
Поиск в Интернете я нашел то, что мне нужно, но то, что мне не хватает, - это изменить выбранный элемент background-foreground и ту же самую вещь, когда мышь находится над элементом (Надеюсь, это понятно)
Это код, я использую для испытаний:
<Window x:Class="TestWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Height="501" Width="792">
<Window.Background>
<ImageBrush ImageSource="C:\\BkGd.png"></ImageBrush>
</Window.Background>
<Grid>
<ListView Margin="10" Name="lvUsers" Background="Transparent" Foreground="White" FontStyle="Normal" FontWeight="Normal" FontFamily="Segoe UI" >
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Resources>
<!-- Foreground for Selected ListViewItem -->
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"
Color="Black"/>
<!-- Background for Selected ListViewItem -->
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="Transparent"/>
</Style.Resources>
</Style>
</ListView.ItemContainerStyle>
<ListView.Template>
<ControlTemplate TargetType="{x:Type ListView}">
<Border CornerRadius="3" BorderThickness="1" BorderBrush="DarkGray">
<ScrollViewer>
<ItemsPresenter />
</ScrollViewer>
</Border>
</ControlTemplate>
</ListView.Template>
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Name}" />
<GridViewColumn Header="Age" Width="50" DisplayMemberBinding="{Binding Age}" />
<GridViewColumn Header="Mail" Width="150" DisplayMemberBinding="{Binding Mail}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
Это прекрасно работает для фона и закругленной угловой границы, но элементы продолжают быть выделены светом цвета и белый текст, плыть не хорошо для меня. Я бы хотел иметь прозрачную рамку вместо выделенного элемента, как для мыши, так и для выбранного элемента.
Другое дело в том, что, поскольку я добавил шаблон, заголовок больше не отображается, но я тоже хочу иметь заголовок.
Может ли кто-нибудь помочь мне сделать это? Большое спасибо заранее
EDIT: это образ того, что происходит Image. Я хотел бы иметь прозрачную границу вместо
EDIT 2: Фон - это изображение. Я попробовал комментировать часть «ListView.View», и у меня есть результат, который я хочу, как показано в этом image, но элементы не отображаются. Мне нужно добавить товар по коду
Вы можете разместить изображение того, что вы имеете и что вам нужно? – Prajwal
установить фон окна прозрачным. Вот почему вы просматриваете фоновый цвет окна. – Prajwal
@Prajwal, как я сказал в сообщении, фон - это изображение. Я попытался, но кажется, что я не могу добавить больше одного свойства для фона. Кажется, что часть Listview.View вызывает проблему. – Hydra