2010-04-20 31 views

Trả lời

4

một chút somthing như thế này ..... (btw, XAML này là WPF, không silverlight-- hơi khác một chút)

<style TargetType="{x:Type Button}"> 
     <Setter Property="Background" Value="Green"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Button"> 
        <Grid Background={TemplateBinding Background} 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </style> 

bây giờ, khi bạn áp dụng kiểu này cho đối tượng, mẫu sẽ sử dụng thuộc tính nền (điều này là thuộc tính trên nút điều khiển) và sẽ được đặt mặc định thành những gì bạn đã đặt theo kiểu (trong trường hợp này là màu xanh lục)

Nếu bạn muốn sử dụng thuộc tính không tồn tại trên đối tượng theo kiểu của mình, bạn có để lấy được quyền kiểm soát của riêng bạn và thêm thuộc tính dưới dạng DependencyProperty hoặc sử dụng giao diện INotifyPropertyChanged. Here là một lời giải thích tốt cho bạn.

+1

là tất cả đều có nó? nếu tôi muốn tạo của riêng tôi, tôi chỉ cần sử dụng một setter với một tên duy nhất? – Peter

+0

thuộc tính phải tồn tại trên đối tượng, dưới dạng DependencyProperty hoặc dưới dạng thuộc tính INotifyPropertyChanged. Trong trường hợp này, Nền là thuộc tính cơ bản của hầu hết các điều khiển. –

3

Cần thêm một chút thông tin về những gì bạn đang cố gắng làm. Thiết lập một TemplateBinding có thể được thực hiện với sự XAML sau:

{TemplateBinding YourProperty} hoặc

{Binding RelativeSource={RelativeSource TemplatedParent}, Path=YourProperty}

+1

nơi nào tôi tạo nguồn của liên kết này và giá trị mặc định? – Peter

Các vấn đề liên quan