CustomControl,命名空间中不存在对象

时间:2015-11-08 23:49:24

标签: c# wpf xaml

对于此处出现的问题感到困惑,我收到的错误是local:NumericValue does not exist in the namespace "clr-namespace:Controls以下

   <local:NumericValue x:Key="NumericValue" /> 

在此行中获取The member "Template" is not recognized or is not accessible

<Setter Property="Template">

我无法弄清楚为什么,我试图将Assembly=Controls添加到ResourceDictionary标记中的local属性的末尾,并且我点击了Clean Solution和{{1多次,如果它是一个构建错误但仍然遇到同样的问题!

这是代码; XAML - Themes / Generic.xaml

Rebuild Solution

代码背后 - NumericUpDown

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:Controls">
    <local:NumericValue x:Key="NumericValue" />

    <Style TargetType="{x:Type local:NumericUpDown}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:NumericUpDown}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition />
                            <ColumnDefinition />
                            <ColumnDefinition />
                        </Grid.ColumnDefinitions>

                        <Button Grid.Column="0">
                            <Button.Content>
                                <Path Data="M0,0 L1,0 0.5,1Z" 
                                      Width="20" 
                                      Height="20" 
                                      Fill="White"
                                      Stretch="Fill"/>
                            </Button.Content>
                        </Button>

                        <TextBox Grid.Column="1" Text="{Binding Source={StaticResource NumericUpDown},Path=value}" />

                        <Button Grid.Column="2">
                            <Button.Content>
                                <Path Data="M0,1 L1,1 0.5,0Z" 
                                      Width="20" 
                                      Height="20" 
                                      Fill="White" 
                                      Stretch="Fill" />
                            </Button.Content>
                        </Button>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>

1 个答案:

答案 0 :(得分:1)

不确定为什么NumericValue无法识别,但关于其他错误:

  

成员“模板”无法识别或无法访问

这是因为您的自定义控件继承自FrameworkElement,但Template类中定义了Control。只需更改NumericUpDown类,使其继承Control