sl基礎(二)

來源:互聯網
上載者:User

理解Styles和ControlTemplates

理解ResourceDictionaries

理解使用者自訂控制項

ControlTemplate從Control繼承 而Control中有Template屬性

定義ControlTemplate有三種方式:

內聯定義:

<ToolTip>

    <ToolTip.Template>

        <ControlTemplate TargetType=”ToolTip>

             ………

        </ControlTemplate>

    </ToolTip.Template>

</ToolTip>

資源引用:

<UserControl.Resources>

<ControlTemplate x:Key=”tooltip” TargetType=”ToolTip”>

…….

</ControlTemplate>

</UserControl.Resources>

 

<Grid x:Name=”LayoutRoot” Background=”White”>

<ToolTip>

<ToolTip.Template>

          <StaticResources ResourceKey=”toolTip”/>

</ToolTip.Template>

</ToolTip>

</Grid>

樣式引用 :(常用方式)

<UserControl.Resources>

<ControlTemplate x:Key=”tooltip” TargetType=”ToolTip”>

          <Setter Property=”Template”>

                <Setter.Value>

                        <ControlTemplate TargetType=”ToolTip”>

                         </ControlTemplate>

                </Setter.Value>

          </Setter>

</ControlTemplate>

</UserControl.Resources>

 

<ToolTip Style=”{StaticResource toolTip}”/>

DataPicker的浮水印處理

public class MyDatePicker : DatePicker
    {
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            var datePickerTextBox = GetTemplateChild("TextBox") as DatePickerTextBox;
            datePickerTextBox.Watermark = "選擇日期....";
            datePickerTextBox.TextChanged += datePickerTextBox_TextChanged;
        }
        private void datePickerTextBox_TextChanged(object sender, TextChangedEventArgs e)
        {
            var datePickerTextBox = GetTemplateChild("TextBox") as DatePickerTextBox;
            datePickerTextBox.Watermark = "選擇日期...";
        }
    }

FallbackValue屬性:

<TextBlock Text=”{Binding Path=Name, FallbackValue=’無效值’}”/>

當繫結來源不存在Name屬性時,TextBlock就會顯示無效值

<TextBlock Text=”{Binding Path=Data,StringFormat=’Now is \{0:yyyy-M-dd}’}”/>

園子裡面看到統一設定樣式的文章,感覺沒有CSS來的方便,可能是剛入門還沒有找到有效方法。<Application.Resources>
    <!--   統一設定按鈕樣式 TargetType應用的類型 x:Key 名稱  -->
    <!--   引用方式: Style=" { StaticResource ButtonStyle }"  -->
    <Style TargetType="Button" x:Key="ButtonStyle">
        <Setter Property="Background" Value="Red"></Setter>
        <Setter Property="Height" Value="50"/>
        <Setter Property="Width" Value="100"/>
        <Setter Property="Margin" Value="10"/>
        <Setter Property="HorizontalAlignment" Value="Center"/>
        <Setter Property="VerticalAlignment" Value="Center"/>
        <Setter Property="Cursor" Value="Hand"/>
        <Setter Property="FontSize" Value="16"/>
    </Style>
</Application.Resources>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.