tomar samsung hacer fotos fondos fondo efecto desenfoque desenfocados desenfocado con como celular camara borroso .net wpf listbox

.net - samsung - fondo desenfocado css



Cambie el estilo de Listbox seleccionado y desenfocado para que no se vea atenuado (6)

Tengo un WPF ListBox realmente simple con SelectionMode configurado en Multiple.

<ListBox SelectionMode="Multiple" />

Cuando el ListBox pierde el foco, es muy difícil distinguir qué se ha seleccionado porque el color de selección cambia de azul a gris claro. ¿Cuál es la forma más fácil de cambiar este comportamiento para que permanezca azul?

Sé que es probablemente algo relacionado con el estilo de ListItem, pero no puedo encontrar dónde.

Aclamaciones.

Similar: WPF ListView Inactive Selection Color


Cuando los elementos seleccionados se atenúan, es porque su control está perdiendo su enfoque lógico. Los controles múltiples tienen la capacidad de tener un enfoque lógico al mismo tiempo. Así que una solución simple a esto podría ser darle a su ListBox un FocusScope a través del FocusManager.

<ListBox SelectionMode="Multiple" FocusManager.IsFocusScope="True"></ListBox>


Esta no es una respuesta a la pregunta, pero encontré esto cuando estaba buscando una forma de desactivar las selecciones en mis listboxes. Al utilizar una forma ligeramente modificada de la técnica de Guy''s & bendewey anterior, resulta que puede dar la apariencia de que no hay selecciones en su listbox sin reemplazar el control de elementos subyacente o algo por el estilo. Aquí está el código que utilicé:

<Grid.Resources> <Style TargetType="ListBoxItem"> <Style.Resources> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="White" /> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" /> <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="White" /> </Style.Resources> </Style> </Grid.Resources>

También encontré útil la siguiente página de MSDN:

MSDN: Miembros de SystemColors (System.Windows)

Gracias por la ayuda chicos.


He hecho algo como esto usando lo siguiente en un ResourceDictionary fusionado, puede que te ayude:

<Style TargetType="ListBoxItem"> <Style.Resources> <!--SelectedItem with focus--> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LightBlue" Opacity=".4"/> <!--SelectedItem without focus--> <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey }" Color="LightBlue" Opacity=".4"/> </Style.Resources> </Style>


Probablemente puedas resolver tu problema volviendo a escribir la Plantilla, pero prueba esto para obtener un parche fácil.

<Style TargetType="ListViewItem"> <Style.Resources> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Blue" /> <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Blue" /> </Style.Resources> </Style>


También tengo este problema. Pero resolví esto usando IsSynchronizedWithCurrentItem = "True":

<ListBox IsSynchronizedWithCurrentItem="True" />


Una solución más completa sería hacer que el nuevo pincel se refiera a HighlightColor:

<Style TargetType="ListBox"> <Setter Property="ItemContainerStyle"> <Setter.Value> <Style TargetType="ListBoxItem"> <Style.Resources> <SolidColorBrush x:Key="{x:Static Member=SystemColors.InactiveSelectionHighlightBrushKey}" Color="{DynamicResource ResourceKey={x:Static Member=SystemColors.HighlightColorKey}}" /> </Style.Resources> </Style> </Setter.Value> </Setter> </Style>

Esto garantizaría que utiliza el mismo color y coincide con el tema del sistema (incluso si el tema del sistema cambia durante el tiempo de ejecución, gracias a DynamicResource).

Por cierto, parece que las versiones recientes de WPF ya no usan "ControlBrush" para esto, pero el más apropiado es "InactiveSelectionHighlightBrush".