2014-12-02 2 views
0

Я использую выпадающее поле DEVExpress и имеет включенный тип впереди (функция автоматического поиска). В поле со списком я показываю две вещи. Первый элемент - это изображение, а второй элемент - значение (id).WPF ComboBox EditTemplate - граница TextBox не уходит

Проблема с минами заключается в том, что граница значения выходит наружу в поле со списком во время отображения в пользовательском интерфейсе во время выполнения. Я попробовал установить маржу, но это бесполезно. Мое приложение имеет возможность выбрать тему, а для некоторой темы тема становится туманной.

Любая идея, как избавиться от этого?

см. Первый, который выглядит хорошо, но нижний один немного туман, если я меняю тему.

enter image description here

Я использую ниже код для того же.

<dvEx:ComboBoxEdit.EditTemplate> 
    <ControlTemplate> 
     <StackPanel Orientation="Horizontal"> 
      <Image Source="{Binding Path=(dxe:BaseEdit.OwnerEdit).SelectedItem.Image, RelativeSource={RelativeSource Self}}" Margin="8, 0, 4, 0"/> 
      <TextBox x:Name="PART_Editor" BorderBrush="Transparent"/> 
     </StackPanel> 
    </ControlTemplate> 
</dvEx:ComboBoxEdit.EditTemplate> 

<dvEx:ComboBoxEdit.ItemTemplate> 
    <DataTemplate DataType="{x:Type vm:DesignSelectViewModel}"> 
     <StackPanel Orientation="Horizontal"> 
      <Image Source="{Binding Image}" Margin="8, 0, 4, 0"/> 
      <TextBlock Text="{Binding Name}"/> 
     </StackPanel> 
    </DataTemplate> 
</dvEx:ComboBoxEdit.ItemTemplate> 

ответ

1

Чтобы выполнить свою задачу, я предлагаю вам переопределить TextBox.Template следующим образом, чтобы сделать его тему независимым и удалить это внимание состояние (границы и фон):

<TextBox x:Name="PART_Editor"> 
    <TextBox.Template> 
     <ControlTemplate TargetType="{x:Type TextBox}"> 
      <Grid x:Name="Root" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"> 
       <ScrollViewer x:Name="PART_ContentHost" Margin="1" Padding="{TemplateBinding Padding}"/> 
      </Grid> 
      <ControlTemplate.Triggers> 
       <Trigger Property="IsReadOnly" Value="True"> 
        <Setter Property="Opacity" TargetName="PART_ContentHost" Value="0.75"/> 
       </Trigger> 
       <Trigger Property="IsEnabled" Value="False"> 
        <Setter Property="Opacity" TargetName="Root" Value="0.5"/> 
       </Trigger> 
      </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </TextBox.Template> 
</TextBox> 

Связанные MSDN статья: TextBox Styles and Templates

+0

спасибо тонну. Он работал как шарма. – user2519971

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