如何自定義文本框的顯示屬性(say..border,圓角半徑等),同時也可用於在它被輸入的數據datatrigger。 。 或者 如何自定義控制的(比如文本框,列表框等)的外觀和感覺,並通過XAML一次實現對於同一控制datatriggers ...WPF,C#-customizing一個文本框的顯示性能和實施datatrigger
可能有人幫我用一個例子..
謝謝, Sekhar。
如何自定義文本框的顯示屬性(say..border,圓角半徑等),同時也可用於在它被輸入的數據datatrigger。 。 或者 如何自定義控制的(比如文本框,列表框等)的外觀和感覺,並通過XAML一次實現對於同一控制datatriggers ...WPF,C#-customizing一個文本框的顯示性能和實施datatrigger
可能有人幫我用一個例子..
謝謝, Sekhar。
您有多個選項。如果您想完全自定義控件的可視元素,則可以覆蓋控件樣式和模板。示例如下:http://msdn.microsoft.com/en-us/library/aa970773(v=VS.100).aspx。
如果你想進行簡單的用戶界面的變化,如紅色的邊框,如果某個值是假的,你使用對象的風格:
<Style TargetType="{x:Type TextBox}">
<Setter Property="TextElement.FontFamily" Value="Calibri" />
<Setter Property="TextElement.FontSize" Value="14" />
<Setter Property="TextElement.Foreground" Value="Black" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsValid}" Value="False">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="5" Color="Red" ShadowDepth="0" />
</Setter.Value>
</Setter>
<Setter Property="ToolTip" Value="Something is invalid." />
</DataTrigger>
<DataTrigger Binding="{Binding Path=IsValid}" Value="True">
<Setter Property="Effect" Value="{x:Null}" />
</DataTrigger>
</Style.Triggers>
</Style>
以上是一些使用DataTrigger模仿可用的錯誤範本。本質上,它綁定到viewmodel中的布爾值,如果布爾值爲false,則在文本框周圍繪製紅色邊框,如果布爾值爲true,則將其清除。
所有的「顯示屬性」的第一個通常稱爲WPF ControlTemplate
。所以當然你可以改變你的TextBox或其他控件的整個ControlTemplate,並以任何你喜歡的方式修改它。例如,您可以將Button的ControlTemplate更改爲僅顯示一個Rectangle。
<ControlTemplate x:Key="myNewButton" TargetType="{x:Type Button}">
<Rectangle Fill="{TemplateBinding Background}"/>
</ControlTemplate>
<Button Template="{StaticResource myNewButton}"/>
的TemplateBinding
標記是通過依賴屬性,在這種情況下Background
您ControlTemplate
孩子的方式。
現在,如果你想添加的數據觸發,你可以做的是,在ControlTemplate
本身
<ControlTemplate x:Key="myNewButton" TargetType="{x:Type Button}">
<Rectangle x:Name="rect" Fill="{TemplateBinding Background}"/>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding MyDataProperty}" Value="True">
<Setter TargetElement="rect" Property="Fill" Value="Green" />
</DataTrigger
</ControlTemplate.Triggers>
</ControlTemplate>
這就是我在尋找......既爲控制實施的ControlTemplate和datatriggers一次.. –