Wpf用模板改变空间的样式
我利用wpf里面的模板ControlTemplate去改变控件Menu里面所有MenuItem的样式,可是当我成功改变了第一行的MenuItem样式之后,我发现点击第一行...
我利用wpf里面的模板ControlTemplate去改变控件Menu里面所有MenuItem的样式,可是当我成功改变了第一行的MenuItem样式之后,我发现点击第一行的MenuItem,原本应该出现下拉MenuItem却完全没有出现,完全没有反应。 下面是我得Xaml文件里的代码,请告诉我哪里出问题,正确的做法是什么??我也是刚接触wpf。
<Menu Background="White">
<Menu.Resources>
<ControlTemplate x:Key="MenuItemTemplate">
<Grid>
<Ellipse Width="{TemplateBinding MenuItem.Width}" Height="{TemplateBinding MenuItem.Height}" >
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" />
<GradientStop Offset="1" Color="Gray"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Viewbox>
<ContentControl Margin="10"/>
</Viewbox>
<Ellipse Width="30" Height="17">
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="White"/>
<GradientStop Offset="1" Color="Transparent"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Viewbox>
<ContentControl Margin="15" Content="{TemplateBinding MenuItem.Tag}"/>
</Viewbox>
</Grid>
</ControlTemplate>
</Menu.Resources>
<MenuItem Height="36" Width="60" Template="{ StaticResource MenuItemTemplate}" Tag="文件">
<MenuItem Height="30" Width="30" />
<MenuItem />
</MenuItem>
</Menu> 展开
<Menu Background="White">
<Menu.Resources>
<ControlTemplate x:Key="MenuItemTemplate">
<Grid>
<Ellipse Width="{TemplateBinding MenuItem.Width}" Height="{TemplateBinding MenuItem.Height}" >
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" />
<GradientStop Offset="1" Color="Gray"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Viewbox>
<ContentControl Margin="10"/>
</Viewbox>
<Ellipse Width="30" Height="17">
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="White"/>
<GradientStop Offset="1" Color="Transparent"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Viewbox>
<ContentControl Margin="15" Content="{TemplateBinding MenuItem.Tag}"/>
</Viewbox>
</Grid>
</ControlTemplate>
</Menu.Resources>
<MenuItem Height="36" Width="60" Template="{ StaticResource MenuItemTemplate}" Tag="文件">
<MenuItem Height="30" Width="30" />
<MenuItem />
</MenuItem>
</Menu> 展开
1个回答
展开全部
<Menu Background="White"漏族睁>
<Menu.Resources>
<ControlTemplate x:Key="MenuItemTemplate" TargetType="{x:Type MenuItem}">
<Grid>
<Ellipse Width="{TemplateBinding MenuItem.Width}" Height="{TemplateBinding MenuItem.Height}" >
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" />
<GradientStop Offset="1" Color="Gray"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Viewbox>
<ContentControl Margin="10"/>
</Viewbox>
<Ellipse Width="30"返岁 Height="17">
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="White"/>
<GradientStop Offset="1" Color="Transparent"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Viewbox>
<ContentControl Margin="15" Content="{TemplateBinding MenuItem.Tag}"/>
</Viewbox>
<Popup IsOpen="{TemplateBinding IsSubmenuOpen}" Placement="Bottom" AllowsTransparency="True">
<穗塌Border Margin="1"
>
<StackPanel IsItemsHost="True"></StackPanel>
</Border>
</Popup>
</Grid>
</ControlTemplate>
</Menu.Resources>
<MenuItem Height="36" Width="60" Template="{ StaticResource MenuItemTemplate}" Tag="文件">
<MenuItem Height="30" Width="60" Template="{ StaticResource MenuItemTemplate}" Tag="打开" />
<MenuItem Height="30" Width="60" Template="{ StaticResource MenuItemTemplate}" Tag="保存" />
</MenuItem>
</Menu>
不知道符不符合要求,其实你可以用Expression Blend改它的样式,很方便,这是照着你那个改的,看那个stackPanel 有个isItemHost,这是它的子菜单的宿主,你那个没有
<Menu.Resources>
<ControlTemplate x:Key="MenuItemTemplate" TargetType="{x:Type MenuItem}">
<Grid>
<Ellipse Width="{TemplateBinding MenuItem.Width}" Height="{TemplateBinding MenuItem.Height}" >
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" />
<GradientStop Offset="1" Color="Gray"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Viewbox>
<ContentControl Margin="10"/>
</Viewbox>
<Ellipse Width="30"返岁 Height="17">
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="White"/>
<GradientStop Offset="1" Color="Transparent"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Viewbox>
<ContentControl Margin="15" Content="{TemplateBinding MenuItem.Tag}"/>
</Viewbox>
<Popup IsOpen="{TemplateBinding IsSubmenuOpen}" Placement="Bottom" AllowsTransparency="True">
<穗塌Border Margin="1"
>
<StackPanel IsItemsHost="True"></StackPanel>
</Border>
</Popup>
</Grid>
</ControlTemplate>
</Menu.Resources>
<MenuItem Height="36" Width="60" Template="{ StaticResource MenuItemTemplate}" Tag="文件">
<MenuItem Height="30" Width="60" Template="{ StaticResource MenuItemTemplate}" Tag="打开" />
<MenuItem Height="30" Width="60" Template="{ StaticResource MenuItemTemplate}" Tag="保存" />
</MenuItem>
</Menu>
不知道符不符合要求,其实你可以用Expression Blend改它的样式,很方便,这是照着你那个改的,看那个stackPanel 有个isItemHost,这是它的子菜单的宿主,你那个没有
追问
还能留个QQ啊,我刚接触wpf想多多交流,我也想过用blend,但是不太会用尝试过没成功
追答
78185442
博思aippt
2024-07-20 广告
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT...
点击进入详情页
本回答由博思aippt提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询