この手順では、Visual Studio で、Calendar for UWP を使用して UWP アプリケーションを作成します。
次の手順に従います。
<Page.Resources>
マークアップを <Page>
タグと <Grid>
タグの間に追加して、コントロールをカスタマイズします。
XAML でマークアップの書き方
XAML マークアップ |
コードのコピー
|
---|---|
<Page.Resources> <!-- カレンダー日のカスタムDataTemplatesを返します。--> <local:DaySlotTemplateSelector x:Key="DaySlotTemplateSelector"> <Calendar:DaySlotTemplateSelector.Resources> <ResourceDictionary> <DataTemplate x:Key="BoldedDay"> <Grid> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <!-- DaySlot.Tag プロパティに保存した予定情報を表示します。 --> <Border Background="LightGreen" Grid.Row="0" VerticalAlignment="Top" > <TextBlock Text="{Binding Tag}" Margin="5" TextWrapping="Wrap" Foreground="Black" /> </Border> <TextBlock Text="{Binding}" Grid.Row="1" Foreground="OrangeRed" HorizontalAlignment="Left" VerticalAlignment="Bottom" FontWeight="SemiBold" Margin="6,0,0,4"/> </Grid> </DataTemplate> <DataTemplate x:Key="UnboldedDay"> <TextBlock Text="{Binding}" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="6,22,0,4"/> </DataTemplate> </ResourceDictionary> </Calendar:DaySlotTemplateSelector.Resources> </local:DaySlotTemplateSelector> <local:SmallDaySlotTemplateSelector x:Key="SmallDaySlotTemplateSelector"> <Calendar:DaySlotTemplateSelector.Resources> <ResourceDictionary> <DataTemplate x:Key="BoldedDay"> <TextBlock Text="{Binding}" HorizontalAlignment="Left" VerticalAlignment="Bottom" FontWeight="ExtraBlack" Margin="10,8,5,8"/> </DataTemplate> <DataTemplate x:Key="UnboldedDay"> <TextBlock Text="{Binding}" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="6,12,5,4"/> </DataTemplate> </ResourceDictionary> </Calendar:DaySlotTemplateSelector.Resources> </local:SmallDaySlotTemplateSelector> </Page.Resources> |
XAML マークアップ |
コードのコピー
|
---|---|
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <Calendar:C1Calendar/> </Grid> |
<Calendar:C1Calendar>
タグに追加して、コントロールをカスタマイズします。
XAML マークアップ |
コードのコピー
|
---|---|
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <Calendar:C1Calendar x:Name="Calendar" Margin="20" Grid.Row="0" SelectedDateChanged="Calendar_SelectedDateChanged" DayOfWeekFormat="dddd" MaxSelectionCount="21" ShowWeekNumbers="true" WeekendBrush="Red"/> </Grid> |
これは、コントロールに名前を付け、カレンダーの書式設定と外観をカスタマイズします。後の手順で、参照されるイベントハンドラのコードを追加します。
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
タグと <Calendar:C1Calendar>
タグの間に追加します。
XAML でマークアップの書き方
XAML マークアップ |
コードのコピー
|
---|---|
<!--アプリのオリエンテーション状態--> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="OrientationStates"> <VisualState x:Name="Full"/> <VisualState x:Name="Fill"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="Calendar"> <DiscreteObjectKeyFrame KeyTime="0"> <DiscreteObjectKeyFrame.Value> <Thickness>15</Thickness> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(C1Calendar.DayOfWeekFormat)" Storyboard.TargetName="Calendar"> <DiscreteObjectKeyFrame KeyTime="0" Value="ddd"/> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="Portrait"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="Calendar"> <DiscreteObjectKeyFrame KeyTime="0"> <DiscreteObjectKeyFrame.Value> <Thickness>15</Thickness> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(C1Calendar.DayOfWeekFormat)" Storyboard.TargetName="Calendar"> <DiscreteObjectKeyFrame KeyTime="0" Value="ddd"/> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(C1Calendar.ShowWeekNumbers)" Storyboard.TargetName="Calendar"> <DiscreteObjectKeyFrame KeyTime="0" Value="false"/> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Visibility)" Storyboard.TargetName="SelectedDayInfo"> <DiscreteObjectKeyFrame KeyTime="0" > <DiscreteObjectKeyFrame.Value> <Visibility>Visible</Visibility> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="Snapped"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="Calendar"> <DiscreteObjectKeyFrame KeyTime="0"> <DiscreteObjectKeyFrame.Value> <Thickness>5</Thickness> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(C1Calendar.ShowWeekNumbers)" Storyboard.TargetName="Calendar"> <DiscreteObjectKeyFrame KeyTime="0" Value="false"/> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(C1Calendar.DayOfWeekFormat)" Storyboard.TargetName="Calendar"> <DiscreteObjectKeyFrame KeyTime="0" Value="d"/> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Visibility)" Storyboard.TargetName="SelectedDayInfo"> <DiscreteObjectKeyFrame KeyTime="0" > <DiscreteObjectKeyFrame.Value> <Visibility>Visible</Visibility> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> |
<Calendar:C1Calendar>
タグと </Grid>
タグの間に追加します。
XAML でマークアップの書き方
XAML マークアップ |
コードのコピー
|
---|---|
<Grid x:Name="SelectedDayInfo" Grid.Row="1" Height="120" Visibility="Collapsed" > <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition/> </Grid.RowDefinitions> <StackPanel Orientation="Horizontal" Margin="10" Grid.Row="0"> <TextBlock Text="SelectedDate: "/> <TextBlock Text="{Binding SelectedDate, ElementName=Calendar}"/> </StackPanel> <TextBlock x:Name="dayInfo" Margin="10" Grid.Row="1" Foreground="Red"/> </Grid> |
これで、C1Calendar コントロールを含む UWP スタイルのアプリケーションを作成できました。次の「手順2:Calendar へのデータの追加」では、C1Calendar にデータを追加します。