2017-01-09 166 views
-1

我一直在使用Silverlight自动完成框Introducing the AutoCompleteBox,现在我希望能够应用一些样式,但我似乎无法让它做我想做的。Silverlight AutoCompleteBox样式?

我应用的任何样式只是呈现它不可见而没有错误,并且无法调试XAML。

我只是试图申请一些没有运气的圆角。我如何去做这件事?

这是XAML迄今为止,

<Style TargetType="{x:Type controls:AutoCompleteBox}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type controls:AutoCompleteBox}"> 
        <Border Name="border" BorderThickness="0" 
         Padding="2,2,2,2" CornerRadius="5"> 
        </Border> 
       </ControlTemplate> 
      </Setter.Value> 
    </Setter>    
</Style> 
+1

这是一个空白边框的ControlTemplate。显然它没有显示任何东西。 – Clemens

+0

@Clemens,我看不到它是空的? – KyloRen

+0

它没有显示任何内容的子元素。从这里开始阅读:[通过创建ControlTemplate自定义现有控件的外观](https://msdn.microsoft.com/zh-cn/library/ee230084(v = vs.110).aspx)。 – Clemens

回答

1

控制模板定义的控制的(完整)的外观和你正在用空边界替换AutoCompleteBox的(整个)默认模板。这就是为什么它不显示。

您可以复制从MSDN的默认样式/模板,然后修改它根据您的要求:

AutoCompleteBox样式和模板:https://msdn.microsoft.com/ru-ru/library/dd728668(v=vs.95).aspx

请注意,您不能“覆盖”ControlTemplate的一部分。您必须将整个模板定义为一个整体。

+1

感谢您一如既往的帮助,欢呼声。 – KyloRen