最新评论
额,楼主,我上面说错了,你是对的,用作数据绑定的属性,一定得是一个封装了DP的普通属性。但是{Binding Path=XXX},这个XXX可以是一个普通属性。
我正在学习DP这个东西,还是挺难理解的,就算会用,也不见得就能理解透彻。
如何使用这种语法不是我们现在要讨论的内容,现在的关键是如果你希望用Markup Extension来为属性赋值,那么这个属性必须是Dependency Property。
-------------------------
楼主,这句话不对吧,我自定义一个UserControl,里面放了个普通属性,在引用它的xaml里面,使用这个属性,也一样成功了啊。
System.Gadget在javascript里未定义怎么办?
@Holyen
悲催啊,3年了我们还在跟。这里我来替楼主回答一下下:
1:首先,追踪FrameworkElement的继承体系,FrameworkElement最终的基类是DependencyObject,所以,在这里完成的是父类转型为子类;
2:由于,在这里转换的都是WPF的元素,它们的共同基类差不多又是FrameworkElement,所以可以安全的完成一次强制转型;
3:其次,这里应该使用FrameworkElement element = d as FrameworkElement;会更好一点。因为后面判断!=null,显然是不想让转换抛异常。
完毕。
楼上的同志们都太龌龊了,楼主写的那么好,居然莫有一个推荐的。3年啊。。。
hi,请教您一个问题:
public static DependencyProperty AtEndCommandProperty=DependencyProperty.RegisterAttached("AtEndCommand", typeof(ICommand),typeof(ScrollViewerMonitor),new PropertyMetadata(OnAtEndCommandChanged));
public static void OnAtEndCommandChanged(DependencyObject d,DependencyPropertyChangedEventArgs e)
{
FrameworkElement element = (FrameworkElement)d;
if (element != null)
{
element.Loaded -= element_Loaded;
element.Loaded += element_Loaded;
}
}
这里FrameworkElement element = (FrameworkElement)d;
为什么可以把 DependencyObject 转换成FrameworkElement;期待回复
为什么要用自动增加的uid?用guid感觉没有后顾之忧
在gadget中,如果页面存在一个gbackground元素,直接在页面添加gimage元素则会出现像素重叠。
而如果使用 gbackground元素的addImageObject方法则会由gadget引擎直接渲染到背景上。即使有半透明和半透明叠加也不会出现红色。这在gadgetAPI中有作说明。
Re:WPF写的斗地主游戏源码 挨踢新手人 2010-08-28 00:59
牛人
Re:“云控制服务”的设想 辰 2010-02-19 16:00
分布式数据共享是关键吧。
老师的ppt服务器开一个端口,接受控制信号。
我的iphone广播发送控制型号、或者选择接收点发送。
ppt服务器状态变为受控,直到我的iphone放弃控制。
如果搞这,还不如看看微软的video,关于未来的设想,从手机的notepad直接拉一个页面到电脑,然后电脑编辑。
同样的道理,不过难点就是手机发送 信号是广播方式的。
Re:“云控制服务”的设想 Kevin Dai 2010-02-19 12:06
大概看了一下,Live Mesh好像就是专注于这方面的呀?//你也在博客园混啊……
Re:WPF写的斗地主游戏源码 爱你的猫 2009-12-13 17:15
好!在obj\debug目录下的FormWinGame.g.i.cs文件被移除了!怎么改啊?请教了!
Re:WPF写的斗地主游戏源码 尘不随风 2009-10-23 16:58
程序很不错。。学习中。。
PS:玩了玩。。两把当庄都得到炸弹。。O(∩_∩)O~
@路边乞丐甲
搞了半个小时,总算找到问题了。它把JS文件加了密,这个网站可以解密:http://www.35wl.com/tools/encode.htm
这个Gadget依赖HWMonitor程序,必须先下载安装并打开HWMonitor.(所以个人认为没啥用,总不能24小时开个HWMonitor吧)
最郁闷的是这个Gadget貌似是中国人写的,用了各种编码去解密都不行,最后发现要用“中文GB2312”才能正确解密……
还是不懂,到底DenpendcyProperty是什么东西。
模糊状态!
这么说就是在DependencyObject和全局 都有对DependencyProperty的维护?
如果是的话,是否出于效率?以空间换事件?
而且在DependencyObject内维护的应该不全,按照lz的代码来看.此时假如通过cs代码访问,如果在DependencyObject没有维护,是否会到全局中读取,然后再将其放入到DependencyObject对象中作为缓冲.
.MyBorderEx”: 无法从密封类型“System.Windows.Controls.Border”派生
re: WPF写的斗地主游戏源码 steven lee 2009-06-17 15:10
@steven lee
@不明白
。。。
re: WPF写的斗地主游戏源码 steven lee 2009-06-17 15:09
关注@steven lee?
re: WPF写的斗地主游戏源码 不明白 2009-06-17 15:08
@dyb628
@不明白?
re: WPF写的斗地主游戏源码 不明白 2009-06-17 15:06
@zealotskj
确实不错啊
re: WPF写的斗地主游戏源码 不明白 2009-06-17 15:05
不明白
好文章啊!赞一个!为什么我现在才发现呢?唉~~~
还有这篇文章怎么没有进WPF标签的索引啊?
re: WPF写的斗地主游戏源码 masterfy 2009-04-18 19:25
FormWinGame.g.i.cs文件在obj\debug目录下
求助~~~~达人请帮忙
老外有个监视系统温度的边栏小工具,很漂亮,但是在中文VISTA里不能运行,估计是JS文件字符编码的问题,弄了一晚上还是不行,实在没辙了就GOOGLE了一下Gadget开发,然后就到了这里,请达人抽空弄一弄,很实用的工具哦,
谢谢!!!!
下载地址在这里
http://thehobbylounge.com/forum/index.php?topic=4273.0
什么样的逻辑才算复杂的逻辑,什么的逻辑才算简单的逻辑?
"自己一个人学东西,怎么样才算会了?除了做东西,有两个检验的办法,第一是去给不懂的人讲,看看能不能把别人讲明白了,第二是写文章,看看理不理的清楚思路 呵呵
第一次尝试写些东西,,先在这儿贴出来再说~
不废话了,今天先发第一部份
"
比较赞同你的这个观点 不过我认为和别人讲是一种很好的学习方式
通过Visual Studio 2008新创建一个WPF Application项目,在没有编译的情况下打开Window1.xaml.cs。鼠标右键单击InitializeComponent();这一代码行,选择Go To Definition菜单项。我们会看到其定义在一个叫做Window1.g.i.cs的文件之中。
re: WPF写的斗地主游戏源码 wllll 2009-01-09 09:44
并无FormWinGame.g.i.cs这个文件,不知道如何解决。
re: WPF写的斗地主游戏源码 zealotskj 2009-01-08 22:27
不错!很牛哦
re: WPF写的斗地主游戏源码 DiabloX 2008-12-30 13:50
我也发生和FormWinGame.xaml.cs(19,26): 错误 CS0263: “TwoToOnePokerGame.FormWinGame”的分部声明一定不能指定不同的基类 这个问题,但是查看博主的解决方案后,并无FormWinGame.g.i.cs这个文件,不知道如何解决。
re: WPF写的斗地主游戏源码 学习中 2008-10-31 10:39
加油,支持你
re: WPF写的斗地主游戏源码 dyb628 2008-09-13 11:52
我没有找到 你说的 选择转到FormWinGame.g.i.cs文件
这个文件啊
@Steven Chen
谢谢支持
这本书现在不难买到,你可以去taobao上面搜索“企业架构模式”关键字,不论中文,影印,还是原版都有卖的,因此也没有必要买高价了
之前我确实不知道ASP.net自带多种存储Session模式,受教了 呵呵
贴几篇Reference:
http://msdn.microsoft.com/en-us/library/aa479041.aspx
http://www.cnblogs.com/weekzero/archive/2006/12/04/581492.html
首先想问lz,这本书在哪里还能买得到,如果你能买的到,请联系我,我高价买一本。谢谢
其次,仅仅对于Asp.net的Session。Asp.net本身就提供了三种存储方式,Inproc、StateServer和SQlServer。
@chegan
这我还真不知道,的确是用的很少的功能
我去找找看
asp.net好像可以支持基于数据库的session,专门有一个session服务器的,可使用.net 的sdk里面的命令建立这样的数据库
@斯克迪亚
我感觉是DependencyProperty这东西设计的过于复杂了,或者说封装做的还不是那么完美,很多地方令人费解……
C#4.0之后很可能会出现类似动态属性的东西,如果能够代替DP的话,那就完美了。。。。。不过起码还得等好多年 呵呵
P.S 检讨下,我也不算太忙。。就是把这儿忽略了。。。
真是大忙人啊,嘿嘿。
看来这个问题一时也很难找到方便的解决方式了,总感觉微软在这一块上设计不是那么合理。
@斯克迪亚
。。又忘了来回复了
DefaultValue可以这么理解,他属于每一个DP的元数据,也就是定义DP的时候,这个DP的元数据会拥有一个DefaultValue
但是每个类也就是DependencyObject使用DP的时候,用的是DP的一个实例,虽然是同一个DP,但是在不同的ownnerType中,同一个DP是可以有区别的,这个区别就在于元数据
有的属性支持继承,有的属性不行,这个就是元数据里面定义的
估计是UIElement的Focusable属性定义的时候元数据里面就是不能继承……人家就是这么设计的
所以我上面的代码必须继承一个TextBox然后覆盖元数据,注意到虽然DP还是那个DP,但是由于ownnerType改变元数据已经不是那个元数据了......
还有,DefaultValue本身不是只读的,但是如果他所在的metadata已经关联到了一个DP上面,修改DefaultValue的时候就会抛出一个异常,这样做是为了防止随意修改已经定义好的DP的元数据
@Yannic Yang
啊哈,终于等到回复了哈^^
不过这两个办法始终是只能挨个修改各个控件的属性吧?有时候控件太庞杂了,逐个修改非常麻烦。
感觉这个DefaultValue属性既然不是只读性质的,应该就是可以在某个地方来修改一下,不然他暴露出这个属性也就没有意义了。
到现在也没找到什么地方可以正确改变基类的这个属性~
而且搞不懂为什么那么多属性都支持继承,唯独这个属性及焦点样式属性根本不能继承~~真是太别扭了~
@斯克迪亚
不好意思过这么久才回复...不知道是不是已经解决了
覆盖所有UIElement的Focusable的默认值为False
首先PropertyMetadata在设置了之后就不能改变了,如果尝试改变就会发生上面的异常 反正不让随便改就行了
可以实现自己的控件,然后覆盖控件的元数据 像这样
public class MyTextBox : TextBox
{
static MyTextBox()
{
UIElement.FocusableProperty.OverrideMetadata(
typeof(MyTextBox),
new FrameworkPropertyMetadata(false)
);
}
}
不用担心覆盖了之后丢失父对象元数据的数据,OverrideMetadata方法是一个对元数据Merge的过程
如果是要改变默认样式,原理应该一样,继承之后覆盖元数据就行了
这种方法需要继承控件,有时候肯定不方便
另外一种方法就是像那篇文章使用Style,如果你愿意,可以直接给类型加一个Style
<Window.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Focusable" Value="False"></Setter>
</Style>
</Window.Resources>
p.s. 很佩服楼上的美工技术...我一直搞不清怎么把Blend和vs结合起来做wpf...也在楼上的文章里学了不少东西
我这样来改变默认值:
Control.FocusableProperty.GetMetadata(typeof(Control)).DefaultValue = false;
但会引发异常,提示为:无法在属性元数据与属性关联以后对其进行更改。
即使在构造函数里执行此语句也是会得到这个提示。
这里有一篇文章里都提到了这个方法,甚至都提到了Focusable,就是没有给出范例:
http://www.interact-sw.co.uk/iangblog/2007/02/14/wpfdefaulttemplate
希望你能指点我一下:)
很精深的一系列文章,意犹未尽,还希望能看到更多此方面的知识。
我对Metadata很感兴趣,我想覆盖所有UI的Focusable的默认值为False,以此来清理难看的焦点框,或者为他们统一换一个好看的焦点样式,该如何做?