2011-10-31 55 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並設置ShowGridlines爲false。

<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嘗試使用Control對屬性進行初始化,因爲它具有BorderBrush屬性。 –