如何在Windows Phone 8.1的应用栏中添加自定义控件?

时间:2014-07-15 19:32:02

标签: windows-phone-8 windows-phone windows-phone-8.1

我想在Windows Phone 8.1的应用栏的辅助部分添加自定义控件,如滑块或按钮,就像相机应用的应用栏中的那个。 enter image description here

知道怎么做吗?

1 个答案:

答案 0 :(得分:2)

所以,看起来,我的解决方案只适用于设计师,尝试过另一种,但也只适用于设计师。所以我得出结论,除了默认按钮之外,不可能在命令栏中输入任何内容,我的尝试如下:

我尝试将此样式应用于AppbarButoon,按钮在设计器中更改为滑块,但在手机上它的样式已被覆盖

<Style x:Key="ButtonStyle1" TargetType="Button">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="BorderBrush" Value="{ThemeResource PhoneForegroundBrush}"/>
            <Setter Property="Foreground" Value="{ThemeResource PhoneForegroundBrush}"/>
            <Setter Property="BorderThickness" Value="{ThemeResource PhoneBorderThickness}"/>
            <Setter Property="FontFamily" Value="{ThemeResource PhoneFontFamilyNormal}"/>
            <Setter Property="FontWeight" Value="{ThemeResource PhoneButtonFontWeight}"/>
            <Setter Property="FontSize" Value="{ThemeResource TextStyleLargeFontSize}"/>
            <Setter Property="Padding" Value="9.5,0"/>
            <Setter Property="MinHeight" Value="{ThemeResource PhoneButtonMinHeight}"/>
            <Setter Property="MinWidth" Value="{ThemeResource PhoneButtonMinWidth}"/>
            <Setter Property="HorizontalAlignment" Value="Left"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <Grid x:Name="Grid" Background="Transparent">
                            <Slider ValueChanged="RangeBase_OnValueChanged"  Width="100" Background="{TemplateBinding Background}" Foreground="{TemplateBinding Foreground}" />
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

第二种方法是从滑块派生并实现ICommandBarElement,它似乎正在工作,直到我在模拟器下运行它,Slider甚至没有出现。

 public sealed class CommandBarSlider : Slider, ICommandBarElement
    {
        public CommandBarSlider()
        {
            this.DefaultStyleKey = typeof(Slider);
        }

        public bool IsCompact { get; set; }
    }

从这些代码中得出的明显结论是,你要做的事情要么是不可能的,要么是我忽略了什么。

(可能我忽略了一些事情)