2011-10-31 4 views
0

グリッドを使ってカレンダーを作った。それは7列と6行を持っています。月の曜日と週を取得することで、選択した日付のグリッドに日付を配置する方法を知ることができます。しかし、グリッドは醜いグリッド線しか表示しません。これを変更してデータグリッドを使用すると、カレンダーのようにしっかりしたグリッド線を表示できます。それとも、私はそれをよりよく見せるために破線のグリッド線を取り除くことができる他の方法はありますか?前もって感謝します。データグリッドを使ってカレンダーwpfを作る

XAML:ItemsControlを作成します。これは、7列と6行のグリッドです。

<Grid Name="mainGrid"> 
    <Grid Name="controlGrid" Margin="0,56,0,0"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="297*" /> 
      <ColumnDefinition Width="290*" /> 
     </Grid.ColumnDefinitions> 
     <ItemsControl ItemsSource="{Binding schedule}" Name="Calender" VerticalAlignment="Stretch" Grid.ColumnSpan="2"> 
     <ItemsControl.Template> 
      <ControlTemplate TargetType="ItemsControl" > 
       <Border BorderBrush="Aqua" BorderThickness="4"> 
        <ItemsPresenter/> 
       </Border> 

      </ControlTemplate> 



     </ItemsControl.Template> 
     <!-- ItemsPanelTemplate --> 
     <ItemsControl.ItemsPanel> 

      <ItemsPanelTemplate> 

       <Grid ShowGridLines="True" Name="gridCalender"> 

        <Grid.RowDefinitions> 
         <RowDefinition /> 
         <RowDefinition /> 
         <RowDefinition /> 
         <RowDefinition /> 
         <RowDefinition /> 
         <RowDefinition /> 
        </Grid.RowDefinitions> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition /> 
         <ColumnDefinition /> 
         <ColumnDefinition /> 
         <ColumnDefinition /> 
         <ColumnDefinition /> 
         <ColumnDefinition /> 
         <ColumnDefinition /> 
        </Grid.ColumnDefinitions> 

       </Grid> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 

     <ItemsControl.ItemTemplate> 

      <DataTemplate> 

       <TextBlock OpacityMask="Black" Name="txtBlockdays"> 
        <Button Content="{Binding day}" Width="175" HorizontalAlignment="Stretch" VerticalAlignment="Top" VerticalContentAlignment="Top" HorizontalContentAlignment="Left" Background="#FF94EBEB"> 

        </Button> 
       </TextBlock> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 


     <!-- ItemContainerStyle --> 
     <ItemsControl.ItemContainerStyle> 
      <Style > 
       <Setter Property="Grid.Column" Value="{Binding WeekDay}" /> 
       <Setter Property="Grid.Row" Value="{Binding WeekNo}" /> 

      </Style> 
     </ItemsControl.ItemContainerStyle> 




    </ItemsControl> 
    </Grid> 
<Grid Name="dayGrid" VerticalAlignment="Top" Height="50"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition /> 
      <ColumnDefinition /> 
      <ColumnDefinition /> 
      <ColumnDefinition /> 
      <ColumnDefinition /> 
      <ColumnDefinition /> 
      <ColumnDefinition /> 
     </Grid.ColumnDefinitions> 
     <Label Content="Monday" Height="Auto" HorizontalAlignment="Stretch" Margin="0" Name="label2" VerticalAlignment="Bottom" Grid.Column="1" FontSize="16" /> 
     <Label Content="Tuesday" Height="Auto" HorizontalAlignment="Stretch" Margin="0" Name="label3" VerticalAlignment="Bottom" Grid.Column="2" FontSize="16" /> 
     <Label Content="Wednesday" Height="Auto" HorizontalAlignment="Stretch" Name="label4" VerticalAlignment="Bottom" Grid.Column="3" Margin="0" FontSize="16" /> 
     <Label Content="Thursday" Height="Auto" HorizontalAlignment="Stretch" Name="label5" VerticalAlignment="Bottom" Grid.Column="4" Margin="0" FontSize="16" /> 
     <Label Content="Friday" Height="Auto" HorizontalAlignment="Stretch" Margin="0" Name="label6" VerticalAlignment="Bottom" Grid.Column="5" FontSize="16" /> 
     <Label Content="Saturday" Height="Auto" HorizontalAlignment="Stretch" Margin="0" Name="label7" VerticalAlignment="Bottom" Grid.Column="6" FontSize="16" /> 
     <Button Content="&lt;" Height="23" HorizontalAlignment="Left" Margin="0,1,0,0" Name="btnDateLeft" VerticalAlignment="Top" Width="29" Click="btnDateLeft_Click" /> 
     <Button Content="&gt;" Height="23" HorizontalAlignment="Left" Margin="26,1,0,0" Name="btnDateRight" VerticalAlignment="Top" Width="30" Click="btnDateRight_Click" /> 
     <Label Content="Sunday" Name="label1" Width="Auto" FontSize="16" Margin="0,19,0,0" /> 
    </Grid> 
    <Label HorizontalAlignment="Left" Margin="62,1,0,0" Name="lblDate" VerticalAlignment="Top" FontSize="15" FontWeight="Bold" Height="32" /> 
</Grid> 

答えて

1

あなたItemContainerStyleを調整し、falseにShowGridlinesを設定します。

<ItemsControl.ItemContainerStyle> 
      <Style TargetType="ComboBoxItem"> 
       <Setter Property="Grid.Column" Value="{Binding WeekDay}" /> 
       <Setter Property="Grid.Row" Value="{Binding WeekNo}" /> 
       <Setter Property="Control.BorderBrush" Value="Black" /> 
      </Style> 
</ItemsControl.ItemContainerStyle> 

はまた、あなたもあなたもそれに応じてスタイルコールド各ボックスにRectangleを置くことができることに注意してください。あなたが何をしたのかを達成するための多くの方法があります。

+0

BorderBrushを設定すると、「フレームワーク要素に見つかりません」というエラーが表示されます。私が調整する必要があるものは何ですか? – TMan

+0

@TMan BorderBrushプロパティを持っているので、Controlでプロパティの前に試してみてください。 –