我自定义了一个功能区按钮,但只显示空白的白色窗口
Posted
技术标签:
【中文标题】我自定义了一个功能区按钮,但只显示空白的白色窗口【英文标题】:I customized a ribbonbutton, but only blank white window showing 【发布时间】:2015-12-22 09:26:17 【问题描述】:我正在尝试自定义功能区按钮。
我画了两个椭圆,箭头指向下方。我已经把它放在 Windows 资源中,这样我就可以通过它的键名“RibbonButtonControlTemplateTest”引用它来在整个项目中使用这种样式。但是,当我执行下面的代码时,我看到的只是一个空白的白色窗口,为什么?
<Window x:Class="WpfApplication5.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing"
xmlns:local="clr-namespace:WpfApplication5"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<ControlTemplate x:Key="RibbonButtonControlTemplateTest" TargetType="x:Type RibbonButton">
<Grid>
<Ellipse>
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="Green"/>
<GradientStop Offset="0.5" Color="White"/>
<GradientStop Offset="1" Color="Green"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Ellipse Margin="10">
<Ellipse.Fill>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Offset="0" Color="Transparent"/>
<GradientStop Offset="0.5" Color="White"/>
<GradientStop Offset="1" Color="Transparent"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<ed:BlockArrow HorizontalAlignment="Stretch" Height="Auto" Margin="28.212,26.557,29.404,19.757" Orientation="Down" Width="Auto">
<ed:BlockArrow.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="Green"/>
<GradientStop Offset="0.5" Color="White"/>
<GradientStop Offset="1" Color="Green"/>
</LinearGradientBrush>
</ed:BlockArrow.Fill>
</ed:BlockArrow>
</Grid>
</ControlTemplate>
</Window.Resources>
<Grid>
<Grid x:Name="gridLeft" HorizontalAlignment="Left" Width="253.714">
<RibbonButton x:Name="ribbonButton" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100"
Content="StaticResource RibbonButtonControlTemplateTest">
</RibbonButton>
</Grid>
<Grid x:Name="gridRight" HorizontalAlignment="Right" Width="253.714">
</Grid>
</Grid>
【问题讨论】:
【参考方案1】:您使用内容而不是模板。尝试更改此代码:
<RibbonButton x:Name="ribbonButton" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100"
Content="StaticResource RibbonButtonControlTemplateTest">
</RibbonButton>
收件人:
<RibbonButton x:Name="ribbonButton" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100"
Template="StaticResource RibbonButtonControlTemplateTest">
</RibbonButton>
【讨论】:
以上是关于我自定义了一个功能区按钮,但只显示空白的白色窗口的主要内容,如果未能解决你的问题,请参考以下文章
WPF/Silverlight问题:我自定义的按钮模板,怎么才能让里面的元素和整个按钮的大小同比例缩放
wpf中我自定义了一个自定义控件,add到了界面,如何设置显示在最底层?后台代码如何控制?
请问一下我在Qt一应用程序中,在构造函数里面写的widget比如按钮这些,运行后都无法显示,只有一空白窗体