`
lindexi-gd
  • 浏览: 140157 次
社区版块
存档分类
最新评论

win10 uwp 自定义控件 SplitViewItem

 
阅读更多

本文主要是因为汉堡菜单里面列出的菜单很多重复的图标和文字,我把它作为控件,因为是随便写,可能存在错误,如果发现了,请和我说或关掉浏览器,请不要发不良言论。

我们使用汉堡菜单,经常需要一个
这里写图片描述
需要一个图标和一个文字

我开始写

                            <ListViewItem.Content>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Margin="10,10,10,10" FontFamily="Segoe MDL2 Assets"
                                         Text="&#xE77B;"></TextBlock>
                                    <TextBlock Margin="10,10,10,10" Text="登录"></TextBlock>
                                </StackPanel>
                            </ListViewItem.Content>

因为需要写3个,我觉得复制不好,因为我还有很多软件,如果每个都这样,那么在TextBlock使用
这里写图片描述
很多都是一样的

自己创建控件,右击添加控件

在控件

    <Grid>
        <StackPanel Orientation="Horizontal">
            <TextBlock Margin="10,10,10,10" FontFamily="Segoe MDL2 Assets"
                       Text="{x:Bind IconString}"></TextBlock>
            <TextBlock Margin="10,10,10,10" Text="{x:Bind Text}"></TextBlock>
        </StackPanel>
    </Grid>

然后在SplitViewItem.xaml.cs

属性IconString,Text

        public static readonly DependencyProperty IconStringProperty = DependencyProperty.Register(
            "IconString", typeof(string), typeof(SplitViewItem), new PropertyMetadata(default(string)));

        public string IconString
        {
            set
            {
                SetValue(IconStringProperty, value);
            }
            get
            {
                return (string) GetValue(IconStringProperty);
            }
        }

        public static readonly DependencyProperty TextProperty = DependencyProperty.Register(
            "Text", typeof(string), typeof(SplitViewItem), new PropertyMetadata(default(string)));

        public string Text
        {
            set
            {
                SetValue(TextProperty, value);
            }
            get
            {
                return (string) GetValue(TextProperty);
            }
        }

我把SplitViewItem扔View文件夹,在使用

xmlns:view="using:EncryptionSyncFolder.View"

本来需要很长的代码,现在修改成为一点点,其实就是导入我的自定义控件,首先在上面的代码是把view用作我的控件所在文件夹,反人类的Segoe MDL2 Assets 可以在http://modernicons.io/segoe-mdl2/cheatsheet/,找到你要的图标

                        <ListViewItem>
                            <ListViewItem.Content>
                               <Grid>
                                    <view:SplitViewItem IconString="&#xE713;" Text="设置"></view:SplitViewItem>
                               </Grid>
                            </ListViewItem.Content>
                        </ListViewItem>

因为每次都需要找汉堡,所以我就做模板

        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="50"/>
                <RowDefinition Height="15*"/>
            </Grid.RowDefinitions>
            <Grid Grid.Row="0">
                <ToggleButton x:Name="SplitToggleButton" >
                    <ToggleButton.Content>
                        <TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE700;"></TextBlock>
                    </ToggleButton.Content>
                </ToggleButton>
            </Grid>
            <SplitView Grid.Row="1" IsPaneOpen="{Binding ElementName=SplitToggleButton,Path=IsChecked,Mode=TwoWay}"
                   DisplayMode="CompactOverlay" OpenPaneLength="100"
                    CompactPaneLength="50" >
                <SplitView.Pane>
                    <Grid>

                    </Grid>
                </SplitView.Pane>
                <SplitView.Content>
                    <Grid>
                        <Frame ></Frame>
                    </Grid>
                </SplitView.Content>
            </SplitView>
        </Grid>

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    UWP-master:UWP自定义控件

    在“UWP-master”项目中,我们可以预见到一系列关于如何创建和使用UWP自定义控件的示例和代码。这可能包括以下几个关键知识点: 1. **控件模板**:UWP中的每个控件都有一个默认的模板,定义了其外观和布局。通过...

    为Silverlight创建自定义控件

    在本文中,我们将深入探讨如何在Silverlight 2中创建自定义控件,这是一个关键的开发技能,可以让你根据特定需求扩展和定制UI组件。Silverlight的控件模型提供了丰富的可扩展性,允许开发者构建高度专业化和交互性的...

    自定义Tabpage控件,tabcontrol控件,很漂亮哦,C#源代码

    在Windows应用程序开发中,TabControl控件是一个非常常用且功能强大的组件,它允许用户通过不同的页面(TabPage)来组织和切换内容。...同时,这也为其他高级主题,如WPF或UWP中的控件自定义提供了基础。

    CustomControls_thyjcd_自定义控件_

    10. **封装与重用**:将自定义控件封装成库,使其可重复使用于不同的项目,提高开发效率。 综上所述,这个"CustomControls"压缩包很可能是为了帮助开发者掌握这些知识点,通过实际操作和学习源码,提升他们在自定义...

    MVVM自定义用户控件

    创建自定义用户控件意味着我们需要扩展WPF或UWP的基础控件,以满足特定的需求或提供独特的功能。以下是创建自定义用户控件的步骤: 1. **定义控件类**:在C#中,创建一个新的类,继承自`System.Windows.Controls....

    自定义控件

    7. **多平台兼容**:随着跨平台开发的需求增加,自定义控件可能需要考虑在不同的.NET平台上(如.NET Core、UWP等)的兼容性。 在这个压缩包中,你可能会找到一系列预先实现的C#自定义控件示例,涵盖各种类型的控件...

    Win10 UWP 开发教程 课程 资源

    Win10 UWP 开发教程 课程 资源 80课时 课程地址:http://blog.csdn.net/shanguuncle/article/details/78111649

    Win10 UWP应用代理工具

    全选设置之后UWP即可访问localhost,可以走代理。

    win10 uwp 轻量级 MVVM 框架入门 2.1.5.3199 例子

    总结来说,"win10 uwp 轻量级 MVVM 框架入门 2.1.5.3199 例子"提供了一个实际操作的平台,让开发者学习如何在UWP环境中利用MVVM模式进行开发。通过分析和实践这个框架,你将能够更好地理解MVVM的工作原理,以及如何...

    Win10下通过UWP刷新WIFI

    下面我们将深入探讨如何在Win10下通过UWP实现这些功能。 首先,我们需要了解UWP(Universal Windows Platform)是微软为Windows 10推出的一种跨设备的应用程序开发框架。它允许开发者编写一次代码,就能在各种...

    C#实现win10 uwp 右击浮出窗在点击位置

    在Windows 10 UWP应用开发中,常常需要创建一种用户友好的交互方式,即当用户右键点击某个元素时,能在一个特定的位置显示一个浮出菜单(MenuFlyout)。本篇文章将详细介绍如何使用C#实现这样的功能,使得MenuFlyout...

    win10 uwp 使用 asp dotnet core 做图床服务器客户端

    在本文中,我们将探讨如何利用Windows 10的UWP(通用Windows平台)应用程序与ASP.NET Core构建一个图床服务器的客户端。这是一个涉及到跨平台开发和云端图像存储管理的项目,旨在提供一种高效且灵活的方式来上传和...

    XAML: 自定义控件中事件处理的最佳实践方法

    在开发基于XAML的应用程序,例如WPF或UWP时,我们经常需要创建自定义控件以满足特定的业务需求或提供更加一致的用户体验。在自定义控件的开发过程中,良好的事件处理是必不可少的。这不仅影响控件的功能性,也与性能...

    TabbedPivot:UWP自定义Pivot控件,带有类似标签的标头

    #TabbedPivot TabbedPivot基于XAML的原始枢轴控件。 它为PivotItem.Header对象提供了可自定义的视图,可以编辑两个String属性以显示文本或字形图标。 &lt; PivotItem&gt;&lt; PivotHeader xss=removed xss=removed&gt;...

    android 中win10 使用uwp控件实现进度条Marquez效果

    Android 中使用 UWP 控件实现进度条 Marquez 效果 本文主要介绍了在 Android 中使用 UWP 控件实现进度条 Marquez 效果的方法。进度条控件是游戏开发中常用的控件之一,能够显示游戏的进度,提高用户的游戏体验。 ...

    win10 moblie uwp qq5.6.1150.1000

    win10 moblie uwp qq5.6.1150.1000主程序,不含依赖程序

    lindexi#lindexi#2020-10-28-win10-uwp-字符文本转语音声音文件方法1

    title: "win10 uwp 字符文本转语音声音文件方法"在 UWP 中,支持将传入的字符串文本内容转换为音频语音,可以将这个语音声音通过 MediaEl

    WPF 引用 UWP 控件 不打包为 MSIX 分发的方法.rar

    在本文中,我们将深入探讨如何在WPF(Windows Presentation Foundation)项目中引用UWP(Universal Windows Platform)控件,而不将整个应用打包为MSIX(Microsoft Store for Business and Education的安装包格式)...

    win10 moblie uwp 越飞阅读1.4.68.0

    win10 moblie uwp 越飞阅读1.4.68.0主程序,不含依赖程序

Global site tag (gtag.js) - Google Analytics