このブログを書いているWordPressにはRSS機能が標準的に存在します、例えばこのブログのRSSはコチラ。
簡単にRSSのタイトルだけを表示するならこんな感じでしょうか。
MainWindow.xaml.cs
namespace SimpleRssReader { using System.IO; using System.Net.Http; using System.ServiceModel.Syndication; using System.Windows; using System.Xml; public partial class MainWindow : Window { public MainWindow(){ InitializeComponent(); } private async void moveButton_Click(object sender, RoutedEventArgs e) { HttpClient client = new HttpClient(); var result = await client.GetStringAsync(RssUri.Text); var reader = XmlReader.Create(new StringReader(result)); var feed = SyndicationFeed.Load(reader); rssResult.ItemsSource = feed.Items; } } }
MainWindow.xaml
<Window x:Class="SimpleRssReader.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="229" Width="525"> <Window.Resources> <DataTemplate x:Key="DataTemplate1"> <Grid> <TextBlock HorizontalAlignment="Left" Margin="2,0,0,0" TextWrapping="Wrap" Text="{Binding Title.Text}" VerticalAlignment="Top"/> </Grid> </DataTemplate> </Window.Resources> <Grid> <Grid.RowDefinitions> <RowDefinition Height="56*"/> <RowDefinition Height="283*"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="101*"/> <ColumnDefinition Width="321*"/> <ColumnDefinition Width="95*"/> </Grid.ColumnDefinitions> <TextBox x:Name="RssUri" Grid.Column="1" TextWrapping="Wrap" Text="https://tocsworld.wordpress.com/?feed=rss2" Margin="3"/> <Button x:Name="moveButton" Content="Move" Grid.Column="2" Margin="3,3,3,0" Height="23" VerticalAlignment="Top" Click="moveButton_Click"/> <Label Content="Title" Height="29" VerticalAlignment="Bottom"/> <ListBox x:Name="rssResult" Grid.Row="1" Grid.ColumnSpan="3" Margin="3,5" ItemTemplate="{DynamicResource DataTemplate1}"/> </Grid> </Window>
実行時の様子はこちら、SyndicationFeedからはIEnumerable<SyndicationItem>が得られます、このタイトルをデータテンプレートを使ってTextBlockでバインド・表示させているだけです。
これに気象予報のRSSはこちらで提供されているので組み合わせるとお天気ソフトが。。
広告