20 messaggi dal 25 aprile 2009
Salve a tutti
ho questo style applicto ad una listBox:
<Style x:Key="MasterListBox" TargetType="ListBox">
            <Setter Property="HorizontalAlignment" Value="Stretch" />
            <Setter Property="VerticalAlignment" Value="Stretch" />
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
            <Setter Property="VerticalContentAlignment" Value="Stretch" />
            <Setter Property="ItemContainerStyle">
                <Setter.Value>
                    <Style>
                        <Setter Property="Control.Padding" Value="0" />
                        <Style.Triggers>
                            <Trigger Property="ListBoxItem.IsSelected" Value="True">
                                <Setter Property="ListBoxItem.Background">
                                    <Setter.Value>
                                        <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
                                            <GradientStop Color="#FF4F890D"/>
                                            <GradientStop Color="White" Offset="1"/>
                                        </LinearGradientBrush>
                                    </Setter.Value>
                                </Setter>
                                <Setter Property="ListBoxItem.Foreground" Value="White" />
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </Setter.Value>
            </Setter>
            <Setter Property="ItemTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <Grid Margin="0" Background="White">
                            <Border Margin="5" BorderThickness="0" BorderBrush="White" CornerRadius="4" 
                                HorizontalAlignment="Stretch"
                                Background="{Binding Path=Background, RelativeSource={
                                RelativeSource
                                Mode=FindAncestor,
                                AncestorType={x:Type ListBoxItem}
                                }}">
                                <Grid Margin="3">
                                    <TextBlock
                                    Text="{Binding Path=NomeCategoria}" />
                                </Grid>
                            </Border>
                        </Grid>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>


Tutto viene visualizzato come dovrebbe tranne che per un fastidioso comportamento: quando seleziono un elemento della listbox si vede in modo quasi impercettibile (ma si vede) una sottile linea blu orizzontale al bordo del selected item che poi sarebbe parte dello sfondo del template predefinito del selected item della listbox (quello che sovrascrivo con l'itemContainerStyle). La cosa strana è che non sempre questo succede, per esempio se seleziono il primo elemento non vedo nulla se seleziono il terzo la vedo sia sopra che sotto, se seleziono l'ultimo elemento solamente sotto.
Per come è impostato lo style non dovrei vedere nulla dello sfondo blu dello style predefinito ed invece succede quello di cui parlo su.
Qualcuno sa da cosa può dipendere?
20 messaggi dal 25 aprile 2009
Ho risolto: SnapToDevicePixel a true nella prima grid di sfondo bianco nel datatemplate.
Grazie comunque, lascio qui perchè di sicuro servirà a qualcuno ;)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.