2011-08-24 7 views
7

Desidero personalizzare la seguente proprietà Listbox-display del bordo con CornerRadius = 5.. Nessuno può aiutarmi a ottenerlo senza modificare il codice datatemplate esistente nel seguente codice Xaml:Personalizza la proprietà Border con CornerRadius per ListBox

<ListBox x:Uid="lst_value" Name="lstValues" Background="Wheat" BorderBrush="Black" 
     HorizontalAlignment="Left" VerticalAlignment="Top" BorderThickness="1" Height="100" Width="150" 
     ItemsSource="{Binding listval}" > 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Vertical" Background="{Binding}"> 
       <TextBlock x:Name="txtblk" Foreground="Black" FontSize="10" TextAlignment="Left" 
               FontWeight="Black" Text="{Binding}" Background="{Binding}"></TextBlock> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

risposta

10

Se si desidera che il Border all'interno del ListBoxItems di avere un altro valore CornerRadius, è possibile ri-template ListBoxItem dove il Border è definito, o impostarlo in modo implicito nelle ItemContainerStyle Risorse

<ListBox ...> 
    <ListBox.ItemContainerStyle> 
     <Style TargetType="ListBoxItem"> 
      <Style.Resources> 
       <Style TargetType="Border"> 
        <Setter Property="CornerRadius" Value="5"/> 
       </Style> 
      </Style.Resources> 
     </Style> 
    </ListBox.ItemContainerStyle> 
    <!--...--> 
</ListBox> 

Edit: Se si desidera impostare CornerRadius per il ListBox, si può fare lo stesso, ma in Resources invece

<ListBox ...> 
     <ListBox.Resources> 
      <Style TargetType="Border"> 
       <Setter Property="CornerRadius" Value="10"/> 
      </Style> 
     </ListBox.Resources> 
    <!--...--> 
</ListBox> 
+0

Sì, possiamo avere un bordo all'interno della casella di riepilogo per ogni listItem ... dove come Ho bisogno della proprietà border con cornerradius da applicare all'intero Listbox stesso .... spero di essere chiaro con la mia domanda .. –

+0

Quindi vuoi arrotondare gli angoli del 'ListBox' e avere un' Border ', è corretto? ? –

+0

Aggiornato la mia risposta con come puoi farlo per il 'ListBox' al posto di' ListBoxItem' –

Problemi correlati