none
一个axml转成cs的问题 RRS feed

  • 问题

  • 请大家帮看一下,如何写成CS代码里:

    <icCore:MarkerStyle.ControlTemplate>
                            <ControlTemplate>
                                <Image x:Name="Camera" Source="Images/c_camera.jpg" Width="15" Height="15"
                                   />
                            </ControlTemplate>
     </icCore:MarkerStyle.ControlTemplate>

    我是这样写的但有错,在SetValue()处报错:

                        ControlTemplate ct = new ControlTemplate();
                        Image ig = new Image();
                        ig.Source=new BitmapImage(new Uri(str.Attribute("IconPath").Value,UriKind.RelativeOrAbsolute));
                        ig.Width = 20;
                        ig.Height = 20;
                        ct.SetValue(Image.SourceProperty, ig);

                         Style = new MarkerStyle()
                            {
                                 ControlTemplate = ct

                            }

    高手帮看下应该怎么写呢

     

    2010年8月19日 5:57

答案

  • 苦苦等了二周,还是没人来回复 ,看来Sukverlight这个ControlTemplate控制果然不好使啊。

    我知道一种笨的方法可以:就是把

    <ControlTemplate>
                                <Image x:Name="Camera" Source="Images/c_camera.jpg" Width="15" Height="15"
                                   />
                            </ControlTemplate>
    当作字符串。然后用XamlReader去load这个字符串 转成 ControlTemplate控件。但这办法比较原始,基本上没人会想到。可能微乳员工会?

    Sliverlight5会改进这个控件吗?

    2010年9月2日 9:26
  • 你好,

    ControlTemplate/DataTemplate不能在code里创建,XamlReader是我所知到唯一的替代办法。

    谢谢,


    Mog Liang
    2010年9月6日 8:24

全部回复

  • 苦苦等了二周,还是没人来回复 ,看来Sukverlight这个ControlTemplate控制果然不好使啊。

    我知道一种笨的方法可以:就是把

    <ControlTemplate>
                                <Image x:Name="Camera" Source="Images/c_camera.jpg" Width="15" Height="15"
                                   />
                            </ControlTemplate>
    当作字符串。然后用XamlReader去load这个字符串 转成 ControlTemplate控件。但这办法比较原始,基本上没人会想到。可能微乳员工会?

    Sliverlight5会改进这个控件吗?

    2010年9月2日 9:26
  • 你好,

    ControlTemplate/DataTemplate不能在code里创建,XamlReader是我所知到唯一的替代办法。

    谢谢,


    Mog Liang
    2010年9月6日 8:24
  • 事实上,论坛前些日子(去年年底),我们已经说过了,SL的ControlTemplate/DataTemplate不能用代码创建,只能用XamlReader。

    但是这里就是有个问题,用XamlReader就是没办法绑定Template里面出现的控件的事件!!!!

    有无高手可以解决???

    2010年9月8日 14:17
  • 有一些替代handle event的方法,比如MVVM pattern,或者使用blend提供的InvokeCommandAction


    Mog Liang
    2010年9月9日 2:04
  • >>>有一些替代handle event的方法,比如MVVM pattern,或者使用blend提供的InvokeCommandAction

    强烈要求给一个简单的例子。如果可以实现XamlReader激发事件的话,SL地自由度就非常的大了。这样的话,我就不怕那个SL和WPF的差别了,大不了我用动态生成有个xaml代码,然后用XamlReader来读。

    2010年9月10日 11:33
  • 示例附上

    http://cid-8d29fb569d8d732f.office.live.com/self.aspx/.Public/Silverlight/ReadXamlTest1.zip

    MVVM模式只能注册少数一些事件。 至于Interactivity类库,我不清楚是否能在WPF中使用。


    Mog Liang
    2010年9月13日 2:35
  • 我要的是DataTemplate里面动态绑定事件。

    2010年9月16日 14:31
  • 把Button放到DataTemplate里就可以了

    http://cid-8d29fb569d8d732f.office.live.com/self.aspx/.Public/Silverlight/ReadXamlTest2.zip

    这个sample同样使用MVVM模式, 默认Command只支持少量事件,若需更多事件支持,可使用Blend的 InvokeCommandAction


    Mog Liang
    2010年9月17日 2:15
  • OK. Thank You. hehe, it sounds a little borring while binding events via XamlReader.
    2010年9月17日 2:19