Silverlight FilterControl-用户操作系统自定义控件?

Silverlight FilterControl-用户操作系统自定义控件?,silverlight,user-controls,custom-controls,Silverlight,User Controls,Custom Controls,我想在Silverlight中创建FilterControl: [标题][文本框][清除按钮] 我想将它创建为一个styleabel控件,具有clear按钮功能(我不想把它留给其他开发人员),并具有属性(标题、FilterText) 但据我所知,第一个是自定义控件,第二个和第三个是用户控件功能 有可能创造出这样的东西吗 以下是CC的代码: <!-- Built-In Style for FilterControl --> <Style TargetType="Controls

我想在Silverlight中创建FilterControl: [标题][文本框][清除按钮]

我想将它创建为一个styleabel控件,具有clear按钮功能(我不想把它留给其他开发人员),并具有属性(标题、FilterText)

但据我所知,第一个是自定义控件,第二个和第三个是用户控件功能

有可能创造出这样的东西吗


以下是CC的代码:

<!-- Built-In Style for FilterControl -->
<Style TargetType="Controls:FilterControl">
    <Setter Property="Template">
        <Setter.Value>
            <!-- ControlTemplate -->
            <ControlTemplate TargetType="Controls:FilterControl">
                <!-- Template's Root Visual -->
                <Grid x:Name="LayoutRoot">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="{TemplateBinding Height}"/>
                    </Grid.RowDefinitions>

                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">

                        <!--FilterCaption PART-->
                        <TextBlock x:Name="FilterCaptionTextBlock" Text="{TemplateBinding FilterCaption}" VerticalAlignment="Center" />

                        <!--FilterTextBox PART-->
                        <TextBox x:Name="FilterTextBox"
                               HorizontalAlignment="Center" Text="{Binding FilterText, Mode=TwoWay}" IsEnabled="{Binding IsEnabled}" VerticalAlignment="Center" />
                        <!--<TextBox x:Name="FilterTextBox"
                               HorizontalAlignment="Center" Text="{TemplateBinding FilterText}" IsEnabled="{Binding IsEnabled}" VerticalAlignment="Center" />-->

                        <!--ClearFilterTextButton PART-->
                        <Button x:Name="ClearFilterTextButton"
                               Content="X" IsEnabled="{TemplateBinding IsEnabled}" VerticalAlignment="Center" />

                    </StackPanel>

                    <!--VisualStateManager-->
                    <VisualStateManager.VisualStateGroups>
                        ...
                    </VisualStateManager.VisualStateGroups>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>


...

首先让我们明确任何
框架控件
包括
用户控件
都可以设置样式,但是我怀疑您可能指的是替换控件模板的能力。需要自定义模板控件

你的问题的答案是:是的,当然是

您可以使用您喜欢的默认模板创建自定义模板控件

为标题和FilterText添加依赖项属性

使用TemplateBinding将标题和筛选文本关联到默认模板中的元素

您需要指定模板需要类型为
TextBox
的TemplatePart


您可以编写代码来监视文本框中的更改,以便控件更新其筛选器属性。

首先让我们清除任何
框架控件
,包括可以设置样式的
用户控件
,但是我怀疑您可能指的是替换控件模板的能力。需要自定义模板控件

你的问题的答案是:是的,当然是

您可以使用您喜欢的默认模板创建自定义模板控件

为标题和FilterText添加依赖项属性

使用TemplateBinding将标题和筛选文本关联到默认模板中的元素

您需要指定模板需要类型为
TextBox
的TemplatePart


您可以编写代码来监视文本框中的更改,以便控件更新其筛选器属性。

很明显,我必须创建一个自定义控件。但是:1。“清除”按钮是怎么回事?因为UC中没有xaml,所以我无法访问该按钮,也无法向其添加eventhandler。2.双向绑定无法处理这些属性很明显,我必须创建一个自定义控件。但是:1。“清除”按钮是怎么回事?因为UC中没有xaml,所以我无法访问该按钮,也无法向其添加eventhandler。2.双向绑定无法处理这些属性