ComboBox的WPF边框

时间:2015-07-08 14:45:52

标签: c# wpf combobox

我尝试使用基于ToolBar.ComboBoxStyleKey的ComboBox。拥有平面设计。 默认情况下,控件没有边框,即在白色背景上只有ToggleButton的可见图标。 当焦点不在ComboBox上时,如何为控件添加边框?

谢谢!

没有焦点:

  

Combo Box without focus

鼠标悬停:

  

Mouse Hover

2 个答案:

答案 0 :(得分:1)

WPF中有一个Border控件,你可以使用它来包装你的ComboBox。

<Border Background="GhostWhite" BorderBrush="Gainsboro" BorderThickness="1">
    <ComboBox>
        ...
    </CombodBox>
</Border>

http://www.wpf-tutorial.com/misc-controls/the-border-control/

您可以根据组合框是否具有焦点来设置BorderThickness。

答案 1 :(得分:0)

有无数的选择。

  1. 围绕组合框(x,y)坐标绘制一个矩形。

  2. 制作您自己的自定义组合框,如下所示:CustomCombowithBorder

  3. 在它后面添加一个面板,给面板一个边框,从而模仿一个边框。

  4. 等...

  5. 修改

    发现MSDN给出了一个很好的答案,如ComboBox Styling所示。

    <Setter Property="Template">
       <Setter.Value>
          <ControlTemplate TargetType="ComboBox">
             <Grid>
                <Border x:Name="ContentPresenterBorder">
                   <Grid>
                      <ToggleButton x:Name="DropDownToggle"/>
                      <ContentPresenter x:Name="ContentPresenter" />
                         <TextBlock Text=" " />
                      </ContentPresenter>
                   </Grid>
                </Border>
             </Grid>
          </ControlTemplate>
       </Setter.Value>
    </Setter>