2013-12-12 61 views
1

如何在Silverlight中增加RadMaskedInputBaseStyle(或TeleMicadDateTimeInput by Telerik)的邊框厚度當它是紅色時,表示輸入包含無效條目。 我的XAML看起來像這樣當內容無效時,Silverlight中Telerik的RadMaskedInputBaseStyle的邊框厚度

<Style TargetType="telerik:RadMaskedDateTimeInput"> 
    <Setter Property="IsValidationHintVisible" Value="True" /> 
</Style> 
+0

你必須挖掘到控制模板,並找到爲該控件的'VisualStateManager'中的無效狀態設置爲可見的邊框。 –

回答

0

在一般情況下,如果風格不可用作控件的屬性,那麼你會發現它在控制模板某處埋藏(克里斯W¯¯暗示的意見)。

要查看像Telerik's之類的專有控件模板的源代碼,請打開Expression Blend並單擊控件實例上的「編輯模板」。如果你這樣做了RadMaskedDateTimeInput,你會注意到與驗證有關的視覺狀態引用一個名爲「ErrorElement」的元素。向下滾動,在控制模板來源,你會看到,聲明如下:

<Telerik_Windows_Controls_Chromes:ValidationTooltip x:Name="ErrorElement" Opacity="0" TooltipPlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}" telerik:StyleManager.Theme="{StaticResource Theme6}" TooltipContent="{TemplateBinding DisplayErrorMessage}" TooltipContentTemplate="{TemplateBinding ErrorMessageTemplate}" /> 

好了,所以它的另一個控件調用ValidationTooltip。這個控件確實有一個BorderThickness屬性暴露,所以如果你喜歡,你應該能夠簡單地設置該屬性在一個有針對性的全球風格。像這樣的東西應該在你的資源字典中:

<Style xmlns:Telerik_Windows_Controls_Chromes="clr-namespace:Telerik.Windows.Controls.Chromes;assembly=Telerik.Windows.Controls" 
    TargetType="Telerik_Windows_Controls_Chromes:ValidationTooltip"> 
    <Setter Property="BorderThickness" Value="2" /> 
</Style> 
+0

我應用了上面提出的代碼,它解決了我的問題!其他提示也非常有價值。 – Karol