【问题标题】:How to add custom controls in the app bar in windows phone 8.1?如何在 windows phone 8.1 的应用栏中添加自定义控件?
【发布时间】:2014-07-15 19:32:01
【问题描述】:

我想在 windows phone 8.1 应用栏的第二部分添加自定义控件,如滑块或按钮,如相机应用程序栏中的那个。

知道怎么做吗?

【问题讨论】:

  • 你可能想改变这些按钮的ControlTemplate,你肯定可以在那里插入滑块
  • @quirell 你能告诉我怎么做吗?
  • 好的,我会在我在电脑前的时候告诉你,它会在几个小时后,但只需在混合中打开你的页面,在设计窗格上放置普通按钮,编辑样式,在那里添加滑块并将此样式应用于 appbarbutton,应该可以工作
  • @ac-lab 首先,相机应用实际上没有 AppBar。通过按下底部的三个点打开的控件是该相机应用程序的开发人员制作的自定义控件。检查该控件的打开和关闭动画,并尝试将其与实际 AppBar 控件的动画相关联。你会发现那个app的开发者,使用了一个和Bottom AppBar一样的自定义uesr控件,并在App中使用了。

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


【解决方案1】:

看来,我的解决方案仅适用于设计器,尝试了另一种解决方案,但也仅适用于设计器。所以我会得出结论,除了默认按钮之外,不可能在命令栏中放入任何东西,我的尝试如下:

我尝试将此样式应用于 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>

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

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

        public bool IsCompact { get; set; }
    }

从这些代码中可以得出的明显结论是,您尝试做的事情要么是不可能的,要么我忽略了一些东西。

(可能我忽略了一些东西)

【讨论】:

  • 我也被这个问题困扰了一段时间。我只是对 MS IE 团队如何设法将文本框控件添加到 WP8 的 Internet Explorer 中的应用栏感到困惑 - 除非他们从头开始重新创建整个东西?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-16
  • 2014-06-25
  • 1970-01-01
  • 2015-10-11
相关资源
最近更新 更多