WPF自定义附加属性时,为什么在XAML中用不了

qq37019736 2015-11-30 08:37:25
xmlns:local="clr-namespace:定义附加属性.Instant"

然后在<Ellipse Name="EllipseRed" Fill="Red" Width="100" Height="50" Canvas.Left="60" Canvas.Top="50"
local:TurnoverManager.Angle="{Binding ElementName=slideAngle,Path=Value}"></Ellipse>中
TurnoverManager.Angle报错:
命名空间"clr-namespace:定义附加属性.Instant"不存在local:TurnoverManager名称
...全文
360 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq37019736 2015-11-30
  • 打赏
  • 举报
回复
namespace 定义附加属性.Instant
{
    public class TurnoverManager : DependencyObject
    {
        //通过静态方法的形式暴露读的操作
        public static double GetAngle(DependencyObject obj)
        {
            return (double)obj.GetValue(AngleProperty);
        }
        //通过静态方法的形式暴露写的操作
        public static void SetAngle(DependencyObject obj, double value)
        {
            obj.SetValue(AngleProperty, value);
        }
        //通过使用RegisterAttached来注册一个附加属性
        public static readonly DependencyProperty AngleProperty =
            DependencyProperty.RegisterAttached("Angle", typeof(double), typeof(TurnoverManager), new PropertyMetadata(0.0, OnAngleChanged));

        //根据附加属性中的值,当值改变的时候,旋转相应的角度。
        private static void OnAngleChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
        {
            var element = obj as UIElement;
            if (element != null)
            {
                element.RenderTransformOrigin = new Point(0.5, 0.5);
                element.RenderTransform = new RotateTransform((double)e.NewValue);
            }
        }
    }
}
angel6709 2015-11-30
  • 打赏
  • 举报
回复
定义附加属性.Instant .TurnoverManager 贴出来看看
qq37019736 2015-11-30
  • 打赏
  • 举报
回复
我是先创建一个WPF项目,在项目里添加一个类,然后写自定义的类,然后映射到mainWindow.xaml就报错、
qq37019736 2015-11-30
  • 打赏
  • 举报
回复
public static class TurnoverManager 没有用 不光这个,凡是添加映射,对自己定义的类进行数据绑定都一样
xmlns:local="clr-namespace:对象绑定和数据模板"
        xmlns:mine="clr-namespace:对象绑定和数据模板.Services"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <StackPanel >

            <StackPanel.Resources>

                <ObjectDataProvider x:Key="students"  ObjectType="{x:Type mine:StudentService}" MethodName="GetStudentList">

                </ObjectDataProvider>
51Crack 2015-11-30
  • 打赏
  • 举报
回复
<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:定义附加属性.Instant"
        Title="MainWindow" Height="350" Width="525">
    <Canvas>
        <Ellipse Name="EllipseRed" Fill="Red" Width="100" Height="50" Canvas.Left="60" Canvas.Top="50"
                    local:TurnoverManager.Angle="{Binding ElementName=slideAngle,Path=Value}"></Ellipse>
        <Slider Width="233" Name="slideAngle" Maximum="360" Canvas.Left="41" Canvas.Top="139" />
    </Canvas>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;

namespace 定义附加属性.Instant
{
    public class TurnoverManager : DependencyObject
    {
        //通过静态方法的形式暴露读的操作
        public static double GetAngle(DependencyObject obj)
        {
            return (double)obj.GetValue(AngleProperty);
        }
        //通过静态方法的形式暴露写的操作
        public static void SetAngle(DependencyObject obj, double value)
        {
            obj.SetValue(AngleProperty, value);
        }
        //通过使用RegisterAttached来注册一个附加属性
        public static readonly DependencyProperty AngleProperty =
            DependencyProperty.RegisterAttached("Angle", typeof(double), typeof(TurnoverManager), new PropertyMetadata(0.0, OnAngleChanged));

        //根据附加属性中的值,当值改变的时候,旋转相应的角度。
        private static void OnAngleChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
        {
            var element = obj as UIElement;
            if (element != null)
            {
                element.RenderTransformOrigin = new Point(0.5, 0.5);
                element.RenderTransform = new RotateTransform((double)e.NewValue);
            }
        }
    }
}
51Crack 2015-11-30
  • 打赏
  • 举报
回复
angel6709 2015-11-30
  • 打赏
  • 举报
回复
   public class TurnoverManager  ==》    public static class TurnoverManager 

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧