注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

分享,态度 ·~~

—— 十年太长,五年;如果可以回到五年前,你最想对那时候的自己说什么?

 
 
 

日志

 
 

关于Menu修改Style后无法显示menuItem的问题  

2009-08-19 18:24:36|  分类: DotNet |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

这几天在写listBox、Menu相关的东西,有一个问题一直无法解决。以Menu为例,在改写了Menu的style后,运行时候再也无法调出menuItem了。今天看了一下Blend里的style代码,受益匪浅,终于搞定了。下面稍微详细的描述一下。

1.一开始我写了个最普通的Menu:

<Grid>
        <Menu Margin="61,86,0,0" Name="menu1" HorizontalAlignment="Left" Width="201" Height="90" VerticalAlignment="Top">
            <MenuItem Header="try" Padding="100,40,5,30">
                <MenuItem Header="Show"/>
                <MenuItem Header="Me">
                    <MenuItem Header="the"/>
                    <MenuItem Header="MenuItem"/>
                </MenuItem>
            </MenuItem>
        </Menu>
    </Grid>

关于Menu修改Style后无法显示menuItem的问题 - 乂乂 - 一个人,一支烟  ·~~

这里的显示很正常,并且,它使用了winXP下的一些默认样式。

2.然后我简单写了一个style如下:       

<Style x:Key="menuWithSon" TargetType="Menu">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Grid>
                            <Image Height="90" Width="201" Source="F:\DockingWPF\Dock\Dock\resource\Docklets\left_bk_top.png"/>
                            <ContentPresenter Content="{TemplateBinding Property=ContentControl.Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

关于Menu修改Style后无法显示menuItem的问题 - 乂乂 - 一个人,一支烟  ·~~

这时候,可以看到,图片上无法正常点出MenuItem。

3.参考Blend下的模板,发现它使用了stackpanel来放menuItem,于是在style中加入了一句描述:       

<Style x:Key="menuWithSon" TargetType="Menu">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Grid>
                            <Image Height="90" Width="201" Source="F:\DockingWPF\Dock\Dock\resource\Docklets\left_bk_top.png"/>
                            <ContentPresenter Content="{TemplateBinding Property=ContentControl.Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                            <StackPanel Margin="2" IsItemsHost="true"/>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

关于Menu修改Style后无法显示menuItem的问题 - 乂乂 - 一个人,一支烟  ·~~

Over,显示很正常。看样子标准的代码还是要好好看的·~~

  评论这张
 
阅读(1363)| 评论(3)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017