日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FlipView和自定义值转换器

發布時間:2025/6/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FlipView和自定义值转换器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

新建一個項目叫做TestFlip,拖動一個FlipView到MainPage.xaml上面。

和前面說到的控件ListView一樣,我們可以在代碼中設置FlipView控件的元素格式和內容。

完整的xaml代碼如下:

[html] view plaincopy
  • <Page??
  • ????x:Class="TestFlip.MainPage"??
  • ????xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"??
  • ????xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"??
  • ????xmlns:local="using:TestFlip"??
  • ????xmlns:d="http://schemas.microsoft.com/expression/blend/2008"??
  • ????xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"??
  • ????mc:Ignorable="d">??
  • ??
  • ????<Grid?Background="{StaticResource?ApplicationPageBackgroundThemeBrush}">??
  • ????????<FlipView?x:Name="myFlip"?HorizontalAlignment="Center"?VerticalAlignment="Center"?Width="600"?Height="400">??
  • ????????????<FlipView.ItemTemplate>??
  • ????????????????<DataTemplate>??
  • ????????????????????<TextBlock?Text="{Binding}"/>??
  • ????????????????</DataTemplate>??
  • ????????????</FlipView.ItemTemplate>??
  • ????????</FlipView>??
  • ????</Grid>??
  • </Page>??


  • 接下來跳轉到后臺的代碼處進行設置。

    先將幾張圖片添加到項目中。新建一個文件夾:Images,然后將圖片添加進去。


    然后在后臺代碼里添加字符串數組用來存儲這些圖片的路徑。

    [csharp] view plaincopy
  • using?System;??
  • using?System.Collections.Generic;??
  • using?System.IO;??
  • using?System.Linq;??
  • using?Windows.Foundation;??
  • using?Windows.Foundation.Collections;??
  • using?Windows.UI.Xaml;??
  • using?Windows.UI.Xaml.Controls;??
  • using?Windows.UI.Xaml.Controls.Primitives;??
  • using?Windows.UI.Xaml.Data;??
  • using?Windows.UI.Xaml.Input;??
  • using?Windows.UI.Xaml.Media;??
  • using?Windows.UI.Xaml.Navigation;??
  • ??
  • //?“空白頁”項模板在?http://go.microsoft.com/fwlink/?LinkId=234238?上有介紹??
  • ??
  • namespace?TestFlip??
  • {??
  • ????///?<summary>??
  • ????///?可用于自身或導航至?Frame?內部的空白頁。??
  • ????///?</summary>??
  • ????public?sealed?partial?class?MainPage?:?Page??
  • ????{??
  • ????????public?MainPage()??
  • ????????{??
  • ????????????this.InitializeComponent();??
  • ????????}??
  • ??
  • ????????///?<summary>??
  • ????????///?在此頁將要在?Frame?中顯示時進行調用。??
  • ????????///?</summary>??
  • ????????///?<param?name="e">描述如何訪問此頁的事件數據。Parameter??
  • ????????///?屬性通常用于配置頁。</param>??
  • ????????protected?override?void?OnNavigatedTo(NavigationEventArgs?e)??
  • ????????{??
  • ????????????if?(e.NavigationMode?==?NavigationMode.New)??
  • ????????????{??
  • ????????????????string[]?myString?=?new?string[]?{???
  • ????????????????????"ms-appx:///Images/1.jpg",??
  • ????????????????????"ms-appx:///Images/2.jpg",??
  • ????????????????????"ms-appx:///Images/3.jpg",??
  • ????????????????????"ms-appx:///Images/4.jpg",??
  • ????????????????????"ms-appx:///Images/5.jpg",??
  • ????????????????????"ms-appx:///Images/6.jpg",??
  • ????????????????};??
  • ??
  • ????????????????myFlip.ItemsSource?=?myString;??
  • ????????????}??
  • ??
  • ????????}??
  • ????}??
  • }??

  • 這樣可以看到在FlipView中會顯示相應的路徑,并且有按鈕可以切換。

    接下來我們要把這些圖片在FlipView中顯示出來。

    新建一個類叫做Person.cs文件用來存儲人物姓名和圖片路徑:

    [csharp] view plaincopy
  • using?System;??
  • using?System.Collections.Generic;??
  • using?System.ComponentModel;??
  • using?System.Linq;??
  • using?System.Text;??
  • using?System.Threading.Tasks;??
  • ??
  • namespace?TestFlip??
  • {??
  • ????class?Person?:?INotifyPropertyChanged??
  • ????{??
  • ????????private?string?_name;??
  • ??
  • ????????public?string?Name??
  • ????????{??
  • ????????????get??
  • ????????????{??
  • ????????????????return?_name;??
  • ????????????}??
  • ??
  • ????????????set??
  • ????????????{??
  • ????????????????_name?=?value;??
  • ????????????????FirePropertyChanged("Name");??
  • ????????????}??
  • ????????}??
  • ??
  • ????????private?string?_imgPath;??
  • ??
  • ????????public?string?ImgPath??
  • ????????{??
  • ????????????get??
  • ????????????{??
  • ????????????????return?_imgPath;??
  • ????????????}??
  • ??
  • ????????????set??
  • ????????????{??
  • ????????????????_imgPath?=?value;??
  • ????????????????FirePropertyChanged("ImgPath");??
  • ????????????}??
  • ????????}??
  • ??
  • ??
  • ??
  • ??
  • ??
  • ????????private?void?FirePropertyChanged(string?propName)??
  • ????????{??
  • ????????????if?(PropertyChanged?!=?null)??
  • ????????????{??
  • ????????????????PropertyChanged(this,?new?PropertyChangedEventArgs(propName));??
  • ????????????}??
  • ????????}??
  • ??
  • ????????public?event?PropertyChangedEventHandler?PropertyChanged;??
  • ????}??
  • }??

  • 接下來到MainPage.xaml.cs文件里進行如下修改: [csharp] view plaincopy
  • using?System;??
  • using?System.Collections.Generic;??
  • using?System.IO;??
  • using?System.Linq;??
  • using?Windows.Foundation;??
  • using?Windows.Foundation.Collections;??
  • using?Windows.UI.Xaml;??
  • using?Windows.UI.Xaml.Controls;??
  • using?Windows.UI.Xaml.Controls.Primitives;??
  • using?Windows.UI.Xaml.Data;??
  • using?Windows.UI.Xaml.Input;??
  • using?Windows.UI.Xaml.Media;??
  • using?Windows.UI.Xaml.Navigation;??
  • ??
  • //?“空白頁”項模板在?http://go.microsoft.com/fwlink/?LinkId=234238?上有介紹??
  • ??
  • namespace?TestFlip??
  • {??
  • ????///?<summary>??
  • ????///?可用于自身或導航至?Frame?內部的空白頁。??
  • ????///?</summary>??
  • ????public?sealed?partial?class?MainPage?:?Page??
  • ????{??
  • ????????public?MainPage()??
  • ????????{??
  • ????????????this.InitializeComponent();??
  • ????????}??
  • ??
  • ????????///?<summary>??
  • ????????///?在此頁將要在?Frame?中顯示時進行調用。??
  • ????????///?</summary>??
  • ????????///?<param?name="e">描述如何訪問此頁的事件數據。Parameter??
  • ????????///?屬性通常用于配置頁。</param>??
  • ????????protected?override?void?OnNavigatedTo(NavigationEventArgs?e)??
  • ????????{??
  • ????????????if?(e.NavigationMode?==?NavigationMode.New)??
  • ????????????{??
  • ????????????????List<Person>?people?=?new?List<Person>();??
  • ????????????????people.Add(new?Person()?{?Name?=?"Why1",?ImgPath?=?"ms-appx:///Images/1.jpg"?});??
  • ????????????????people.Add(new?Person()?{?Name?=?"Why2",?ImgPath?=?"ms-appx:///Images/2.jpg"?});??
  • ????????????????people.Add(new?Person()?{?Name?=?"Why3",?ImgPath?=?"ms-appx:///Images/3.jpg"?});??
  • ????????????????people.Add(new?Person()?{?Name?=?"Why4",?ImgPath?=?"ms-appx:///Images/4.jpg"?});??
  • ????????????????people.Add(new?Person()?{?Name?=?"Why5",?ImgPath?=?"ms-appx:///Images/5.jpg"?});??
  • ??
  • ????????????????myFlip.ItemsSource?=?people;??
  • ????????????}??
  • ??
  • ????????}??
  • ????}??
  • }??

  • 最后到xaml頁面設置一下顯示的內容:

    [html] view plaincopy
  • <Page??
  • ????x:Class="TestFlip.MainPage"??
  • ????xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"??
  • ????xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"??
  • ????xmlns:local="using:TestFlip"??
  • ????xmlns:d="http://schemas.microsoft.com/expression/blend/2008"??
  • ????xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"??
  • ????mc:Ignorable="d">??
  • ??
  • ????<Grid?Background="{StaticResource?ApplicationPageBackgroundThemeBrush}">??
  • ????????<FlipView?x:Name="myFlip"?HorizontalAlignment="Center"?VerticalAlignment="Center"?Width="600"?Height="400">??
  • ????????????<FlipView.ItemTemplate>??
  • ????????????????<DataTemplate>??
  • ????????????????????<Grid?Background="DarkGray">??
  • ????????????????????????<Grid.RowDefinitions>??
  • ????????????????????????????<RowDefinition></RowDefinition>??
  • ????????????????????????????<RowDefinition></RowDefinition>??
  • ????????????????????????</Grid.RowDefinitions>??
  • ????????????????????????<TextBlock?Grid.Row="0"?Text="{Binding?Name}"?FontSize="40"?TextAlignment="Center"></TextBlock>??
  • ????????????????????????<Image?Source="{Binding?ImagePath}"?Grid.Row="1"></Image>??
  • ????????????????????</Grid>??
  • ????????????????</DataTemplate>??
  • ????????????</FlipView.ItemTemplate>??
  • ????????</FlipView>??
  • ????</Grid>??
  • </Page>??

  • 便可以看到FlipView的效果了:



    但是有一個問題,比如一個TextBox的Text可以顯示int類型的Age數值,一個Image的ImageSource屬性也可以用一個string來賦值,

    但是如果是一個bool類型的值,想綁定在Visibility屬性(枚舉)上怎么辦呢?

    這時我們需要做一個數據轉換。

    我們在Person類里面添加一個屬性:ShowImage來判斷是否展現圖片。

    [csharp] view plaincopy
  • using?System;??
  • using?System.Collections.Generic;??
  • using?System.ComponentModel;??
  • using?System.Linq;??
  • using?System.Text;??
  • using?System.Threading.Tasks;??
  • ??
  • namespace?TestFlip??
  • {??
  • ????class?Person?:?INotifyPropertyChanged??
  • ????{??
  • ????????private?string?_name;??
  • ????????public?string?Name??
  • ????????{??
  • ????????????get??
  • ????????????{??
  • ????????????????return?_name;??
  • ????????????}??
  • ??
  • ????????????set??
  • ????????????{??
  • ????????????????_name?=?value;??
  • ????????????????FirePropertyChanged("Name");??
  • ????????????}??
  • ????????}??
  • ??
  • ????????private?string?_imagePath;??
  • ????????public?string?ImagePath??
  • ????????{??
  • ????????????get??
  • ????????????{??
  • ????????????????return?_imagePath;??
  • ????????????}??
  • ??
  • ????????????set??
  • ????????????{??
  • ????????????????_imagePath?=?value;??
  • ????????????????FirePropertyChanged("ImgPath");??
  • ????????????}??
  • ????????}??
  • ??
  • ????????private?bool?_showImage;??
  • ????????public?bool?ShowImage??
  • ????????{??
  • ????????????get??
  • ????????????{??
  • ????????????????return?_showImage;??
  • ????????????}??
  • ??
  • ????????????set??
  • ????????????{??
  • ????????????????_showImage?=?value;??
  • ????????????????FirePropertyChanged("ShowImage");??
  • ????????????}??
  • ????????}??
  • ??
  • ??
  • ??
  • ??
  • ??
  • ????????private?void?FirePropertyChanged(string?propName)??
  • ????????{??
  • ????????????if?(PropertyChanged?!=?null)??
  • ????????????{??
  • ????????????????PropertyChanged(this,?new?PropertyChangedEventArgs(propName));??
  • ????????????}??
  • ????????}??
  • ??
  • ????????public?event?PropertyChangedEventHandler?PropertyChanged;??
  • ????}??
  • }??

  • 此時如果直接將其綁定到image的Visibility上是不可以的,因為Visibility是枚舉類型:


    這個時候我們就需要一個轉換器。

    xx-xx轉換器,也就是Model-UI的轉換。

    新建一個類,命名為:BoolVisibilityConverter.cs。

    [csharp] view plaincopy
  • using?System;??
  • using?System.Collections.Generic;??
  • using?System.Linq;??
  • using?System.Text;??
  • using?System.Threading.Tasks;??
  • using?Windows.UI.Xaml;??
  • using?Windows.UI.Xaml.Data;??
  • ??
  • namespace?TestFlip??
  • {??
  • ????class?BoolVisibilityConverter?:?IValueConverter??
  • ????{??
  • ????????public?object?Convert(object?value,?Type?targetType,?object?parameter,?string?language)??
  • ????????{??
  • ????????????//value是model中的數據,返回值是轉換后UI中的數據??
  • ????????????bool?b?=?(bool)value;??
  • ????????????return?b???Visibility.Visible?:?Visibility.Collapsed;??
  • ????????}??
  • ??
  • ????????public?object?ConvertBack(object?value,?Type?targetType,?object?parameter,?string?language)??
  • ????????{??
  • ????????????//TwoWay綁定??
  • ????????????Visibility?v?=?(Visibility)value;??
  • ????????????return?v?==?Visibility.Visible;??
  • ????????}??
  • ????}??
  • }??
  • 接下來到xaml界面中繼續設置一下:

    [html] view plaincopy
  • <Page??
  • ????x:Class="TestFlip.MainPage"??
  • ????xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"??
  • ????xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"??
  • ????xmlns:local="using:TestFlip"??
  • ????xmlns:d="http://schemas.microsoft.com/expression/blend/2008"??
  • ????xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"??
  • ????mc:Ignorable="d">??
  • ??
  • ????<Page.Resources>??
  • ????????<local:BoolVisibilityConverter?x:Key="BoolVisibilityConverter"?/>??
  • ????</Page.Resources>??
  • ??????
  • ????<Grid?Background="{StaticResource?ApplicationPageBackgroundThemeBrush}">??
  • ????????<FlipView?x:Name="myFlip"?HorizontalAlignment="Center"?VerticalAlignment="Center"?Width="600"?Height="400">??
  • ????????????<FlipView.ItemTemplate>??
  • ????????????????<DataTemplate>??
  • ????????????????????<Grid?Background="DarkGray">??
  • ????????????????????????<Grid.RowDefinitions>??
  • ????????????????????????????<RowDefinition></RowDefinition>??
  • ????????????????????????????<RowDefinition></RowDefinition>??
  • ????????????????????????</Grid.RowDefinitions>??
  • ????????????????????????<TextBlock?Grid.Row="0"?Text="{Binding?Name}"?FontSize="40"?TextAlignment="Center"></TextBlock>??
  • ????????????????????????<Image?Source="{Binding?ImagePath}"?Visibility="{Binding?ShowImage,Converter={StaticResource?BoolVisibilityConverter}}"?Grid.Row="1"></Image>??
  • ????????????????????</Grid>??
  • ????????????????</DataTemplate>??
  • ????????????</FlipView.ItemTemplate>??
  • ????????</FlipView>??
  • ????</Grid>??
  • </Page>??

  • 這樣就可以實現用bool值控制Visibility了。

    總結

    以上是生活随笔為你收集整理的FlipView和自定义值转换器的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 可以直接看av的网址 | 91性视频 | 男女一起插插插 | 国产欧美日韩精品一区 | 久久久久久无码精品人妻一区二区 | 噜噜色成人 | 水牛影视av一区二区免费 | 久久黄色小视频 | 冲田杏梨在线 | 成人在线国产视频 | 成人免费一级视频 | 三级免费| 久久久久久精 | 禁断介护av一区二区 | 怡红院一区二区三区 | 嫩模被强到高潮呻吟不断 | 在线日韩中文字幕 | 国产精品99久久久久久久久久久久 | 少妇激情一区二区三区视频 | 国产一区91精品张津瑜 | 欧美性福利 | 久操伊人网 | 天天摸天天操天天射 | 日韩av有码 | 黑人性高潮 | 欧美性猛交xxxx黑人猛交 | 欧美人人爽 | 熟睡侵犯の奶水授乳在线 | 精品国产一区一区二区三亚瑟 | 在哪里可以看黄色片 | 在线激情网站 | 欧美黄色性视频 | 国产精品视频一区在线观看 | 欧美视频第一页 | 最新国产一区 | 日韩av一区在线观看 | 免费在线色视频 | 极品美女高潮出白浆 | 激情片| 欧美丰满老熟妇xxxxx性 | 操日韩 | 久久99日| 波多野结衣网址 | 成人性视频网站 | 奇米影视色 | 人妻丰满熟妇av无码区免 | 亚洲综合精品国产一区二区三区 | 欧美一区永久视频免费观看 | 一区二区三区久久 | 91精品国产综合久久精品 | 伊人春色视频 | 国产精品色网 | 日本黄色激情视频 | 久久久久夜夜夜精品国产 | 粉嫩av一区二区 | 天天射日| 美女屁股网站 | 国产xxxx做受视频 | 秋霞视频在线观看 | 强侵犯の奶水授乳羞羞漫虐 | 国产精品1024 | 哺乳援交吃奶在线播放 | 一道本在线观看 | 黄色av网站免费在线观看 | 国产精品夜夜躁视频 | 中文在线а√天堂官网 | 亚洲国产欧美精品 | 黄色一级录像片 | 国产视频日本 | 欧美又粗又大aaa片 老熟妇仑乱视频一区二区 亚洲妇女体内精汇编 | 黄色一级小视频 | 免费观看理伦片在线播放视频软件 | 亚洲码中文 | 亚洲天堂av网站 | 日韩久久精品一区二区 | 天天操网 | 天天干夜夜骑 | 日韩一卡二卡三卡 | 亚洲毛片在线播放 | 超碰人人国产 | 扒开伸进免费视频 | 中文字幕免费播放 | 黄色aa毛片 | 九九在线| 大奶一区| 国产高清一级 | 国产对白刺激视频 | 成人高清在线观看 | 国产suv精品一区二区883 | 1024金沙人妻一区二区三区 | 亚洲色图美腿丝袜 | 久久精品视频16 | 欧美一区二区视频在线 | 国产在线播放一区二区三区 | 美女张开腿让男人桶爽 | 美女脱了内裤喂我喝尿视频 | 四虎永久免费影院 | 中文字幕日韩精品亚洲一区小树林 | 国产精品偷乱一区二区三区 |