2011-10-31 3 views
0

그리드를 사용하여 캘린더를 만들었습니다. 그것에는 7 개의 열과 6 개의 행이 있습니다. 한 달의 요일과 주를 얻음으로써 선택한 날짜 그리드에 날짜를 배치하는 방법을 알 수 있습니다. 그러나 격자는 추악한 격자 선만 보여줍니다. 캘린더와 같이 단단한 눈금 선을 나타낼 수 있도록 데이터 그리드를 사용하도록 어떻게 변경할 수 있습니까? 아니면 더 잘 보이게하기 위해 파선 그리드 선을 제거 할 수있는 다른 방법이 있습니까? 미리 감사드립니다.DataGrid를 사용하여 캘린더 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을 사용하여 속성 앞에 선행 해보십시오. –

관련 문제