2014-08-31 102 views
0

任何人都可以給我一個DatePickerTextBox的ControlTemplate?哪裏可以找到DatePickerTextBox的ControlTemplate?

我訪問過MSDN。在那裏,我無法找到DatePickerTextBox的ControlTemplate。但是我能找到DatePicker的ControlTemplate。在那裏我剛剛發現DatePickerTextBox有兩個不同的部分,即:PART_WatermarkPART_ContentElement。但我無法找到DatePickerTextBox的ControlTemplate。

+1

http://stackoverflow.com/questions/3636310/custom-wpf-datepickertextbox-template-help – Sajeetharan 2014-08-31 14:48:35

+0

@Sajeetharan我已經訪問過的鏈接前問這個問題。在那裏我找不到完整的ControlTemplate。上述兩個部分,即PART_Watermark和PART_ContentElement都不在該模板中。 – Vishal 2014-08-31 14:50:45

+0

@Sajeetharan此外,我的主要需求是將水印文本以及日期分隔符從'/'更改爲'.' – Vishal 2014-08-31 15:00:35

回答

3

這裏去爲DatePickerTextBox默認模板:

<ControlTemplate TargetType="DatePickerTextBox"> 
    <Grid> 
     <Grid.Resources> 
      <SolidColorBrush 
       x:Key="G">#FFAAAAAA</SolidColorBrush> 
     </Grid.Resources> 
     <VisualStateManager.VisualStateGroups> 
      <VisualStateGroup 
       Name="CommonStates" /> 
      <VisualStateGroup 
       Name="WatermarkStates" /> 
      <VisualStateGroup 
       Name="FocusStates" /> 
     </VisualStateManager.VisualStateGroups> 
     <Border 
      BorderThickness="{TemplateBinding Border.BorderThickness}" 
      Padding="{TemplateBinding Control.Padding}" 
      CornerRadius="1,1,1,1" 
      BorderBrush="{TemplateBinding Border.BorderBrush}" 
      Background="{TemplateBinding Panel.Background}" 
      Name="Border" 
      Opacity="1"> 
      <Grid 
       Name="WatermarkContent" 
       HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}" 
       VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}"> 
       <Border 
        BorderThickness="1,1,1,1" 
        BorderBrush="#FFFFFFFF" 
        Name="ContentElement" /> 
       <Border 
        BorderThickness="1,1,1,1" 
        BorderBrush="#FFFFFFFF" 
        Name="watermark_decorator"> 
        <ContentControl 
         Padding="2,2,2,2" 
         Name="PART_Watermark" 
         Opacity="0" 
         IsHitTestVisible="False" 
         Focusable="False" /> 
       </Border> 
       <ScrollViewer 
        HorizontalContentAlignment="{TemplateBinding Control.HorizontalContentAlignment}" 
        VerticalContentAlignment="{TemplateBinding Control.VerticalContentAlignment}" 
        Name="PART_ContentHost" 
        Margin="0,0,0,0" /> 
       <Border 
        CornerRadius="1,1,1,1" 
        BorderBrush="#FF45D6FA" 
        Name="FocusVisual" 
        Opacity="0" 
        IsHitTestVisible="False" /> 
      </Grid> 
     </Border> 
    </Grid> 
</ControlTemplate> 
+0

如果上述模板是默認的,那麼爲什麼我找不到默認的水印文本'在該模板中選擇一個日期? – Vishal 2014-08-31 15:16:00

+1

當您添加DatePickerTextBox時,您將在默認文本中輸入文本(至少在Windows 8中)並且來自名爲WatermarkStates的VisualStateGroup,該文件必須在'PresentationFramework'程序集的主題樣式中定義。 – 2014-08-31 15:21:37

+0

有兩個單獨的控件'DatePickerTextBox'和一個'DatePicker'。你要哪一個? – 2014-08-31 15:24:32