2016-11-10 5 views
1

друзей я найти этот код, чтобы сделать круглую коробку комбо, но я не знаю, как использоватькруглого поле со списком границы

есть любой может помочь, как использовать этот код

<Style TargetType="{x:Type ComboBox}">  
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="{x:Type ComboBox}"> 
     <Border CornerRadius="5"> 

     </Border> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 

, что должен ли я использовать этот код в своем поле со списком в wpf

+0

https://blogs.msdn.microsoft.com/wpfsldesigner/2010/06/03/creating-and-consuming-resource-dictionaries-in-wpf-and-silverlight/ – Steve

+0

Вам необходимо переопределить шаблон combobox. – Jim

+0

Щелкните правой кнопкой мыши 'ComboBox'>« Редактировать шаблон »>« Редактировать копию »и измените шаблон в соответствии с вашим желанием. – AnjumSKhan

ответ

0

Этот шаблон, который вы показываете здесь, является базовой идеей, но не является чем-то действительно работающим. Вам необходимо переопределить полный шаблон по умолчанию и настроить его для ваших нужд. Внутри вашего UserControl в заднице ресурсов шаблон (просто скопировать и вставить) по этой ссылке default combobox template

<UserControl.Resources> 
<!-- paste the code here--> 
<!--Control colors.--> 
<Color x:Key="WindowColor">#FFE8EDF9</Color> 
<Color x:Key="ContentAreaColorLight">#FFC5CBF9</Color> 
<Color x:Key="ContentAreaColorDark">#FF7381F9</Color> 

…. 

<ControlTemplate x:Key="ComboBoxToggleButton" 
       TargetType="{x:Type ToggleButton}"> 
…. 

</UserControl.Resources> 
Then modify the border radius in two places: 
… 
Grid.ColumnSpan="2" 
      CornerRadius="<put a new radius here, for example 20>" 
      BorderThickness="1"> 
… 
And here 
<Border Grid.Column="0" 
      CornerRadius="<new value, for example 20>,0,0,<new value, for example 20>" 
      Margin="1" > 

Это должно сделать это. Поскольку вы не указали имя ключа для шаблона, combobox должен автоматически выбрать новый шаблон.

Смежные вопросы