2009-04-01 3 views
4

다른 스타일을 사용하는 행 및 열이있는 9x9 눈금으로 구성된 WPF 응용 프로그램을 만들려고합니다. 내가하고 싶은 것은 열과 행 정의의 높이와 너비에 별표 값을 제공하는 것입니다. 현재 컨텍스트에서는 작동하지 않습니다. 이것이 가능한가? 그렇다면 어떻게 될까?WPF 스타일 설정 기 * 높이 및 너비

<Window x:Class="BaroqueChessUI.Window1" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="Window1" Height="500" Width="500"> 
<Window.Resources> 
    <Style x:Key="LightBackground" > 
     <Setter Property="Control.Background" Value="Teal" /> 
    </Style> 
    <Style x:Key="DarkBackground" > 
     <Setter Property="Control.Background" Value="Maroon" /> 
    </Style> 
    <Style x:Key="FileStyle"> 
     <Setter Property="Control.Width" Value="0.12" /> 
    </Style> 
    <Style x:Key="RankStyle"> 
     <Setter Property="Control.Height" Value="0.12" /> 
    </Style> 
    <Style x:Key="FileHeadingStyle"> 
     <Setter Property="Control.Width" Value="0.04" /> 
    </Style> 
    <Style x:Key="RankHeadingStyle"> 
     <Setter Property="Control.Height" Value="0.04" /> 
    </Style> 
</Window.Resources> 
<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Name="rdRank" Style="{StaticResource FileHeadingStyle}" /> 
     <RowDefinition Name="rdRank1" Style="{StaticResource FileStyle}" /> 
     <RowDefinition Name="rdRank2" Style="{StaticResource FileStyle}" /> 
     <RowDefinition Name="rdRank3" Style="{StaticResource FileStyle}" /> 
     <RowDefinition Name="rdRank4" Style="{StaticResource FileStyle}" /> 
     <RowDefinition Name="rdRank5" Style="{StaticResource FileStyle}" /> 
     <RowDefinition Name="rdRank6" Style="{StaticResource FileStyle}" /> 
     <RowDefinition Name="rdRank7" Style="{StaticResource FileStyle}" /> 
     <RowDefinition Name="rdRank8" Style="{StaticResource FileStyle}" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Name="cdFile" Style="{StaticResource RankHeadingStyle}" /> 
     <ColumnDefinition Name="cdFile2" Style="{StaticResource RankStyle}" /> 
     <ColumnDefinition Name="cdFile3" Style="{StaticResource RankStyle}" /> 
     <ColumnDefinition Name="cdFile4" Style="{StaticResource RankStyle}" /> 
     <ColumnDefinition Name="cdFile5" Style="{StaticResource RankStyle}" /> 
     <ColumnDefinition Name="cdFile6" Style="{StaticResource RankStyle}" /> 
     <ColumnDefinition Name="cdFile7" Style="{StaticResource RankStyle}" /> 
     <ColumnDefinition Name="cdFile8" Style="{StaticResource RankStyle}" /> 
    </Grid.ColumnDefinitions> 
</Grid> 

답변

10

그리드 컬럼 정의/행 정의 레이아웃을 정의하고, 정의 된 영역 내에서 당신은 (당신이 지루한 얻을 수 있습니다로 연결된 속성을 사용하여) 스타일되어야 컨트롤을 추가, 그렇게하지 않으려 고한다 행 정의/열 정의 자체의 스타일을 지정합니다.

스타일링 항목 : 그래서 같은 당신은 행에 컨트롤을 입력 할 수 있습니다

/열 (미안 해요 생색 해요 경우) : 다음

<Rectangle Grid.Row="0" Grid.Column="0" ></Rectangle> 

내에서 컨트롤의 스타일을 정의 행/열.

<Rectangle Grid.Row="0" Grid.Column="0" Style="{StaticResource DarkBackground}"></Rectangle> 

크기 조정 (별 값) :

참고 : 코드를 의미하고 고정 된 높이를 정의 할 경우 별 값을 적용하기 만하면되므로 그리드 동적으로 사용 가능한 공간을 채울 것 그리드까지의 너비와 나머지 공간의 비례 할당을 원합니다. "스타의 값을"달성에 관해서 즉

... :

내가 높이와 의 폭 열 및 행 정의에 대한 별 값을 제공 할 일은 바라고 있어요 .

그냥 "rdRank"라는 rowdefinition가 "500"의 고정 된 높이, 나머지 공간을 것이다 당신의 정의?이 예에서

<Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Name="rdRank" Height="500" /> 
      <RowDefinition Name="rdRank1" Height="60*" /> 
      <RowDefinition Name="rdRank2" Style="40*" /> 
     </Grid.RowDefinitions> 
    </Grid> 

에과 같이 값을 입력하지 왜

는 것 "rdRank1"에 60 %, "rdRank2"에 40 %를 할당해야합니다.

** 첨부 속성 : ** 스타일에서

:이 스타일에 적용한 항목 내에서 모든 컨트롤을 진술하는

<Style x:Key="RankStyle"> 
     <Setter Property="Control.Height" Value="0.12" /> 
    </Style> 

는 다음의 값을 취해야 높이라는 속성이 있습니다 0.12. Control.Height는 결국 필터링을 종료합니다.

당신은 행 사용에 0.12 *의 높이를 달성하는 것을 목표로하는 경우 a '은 TargetType'를 사용

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Name="rdRank" Style="{StaticResource FileHeadingStyle}" /> 
     <RowDefinition Name="rdRank1" Style="{StaticResource NewRankStyle}" /> 

당신과 같은 유형의 특정 속성을 대상으로 할 수 있습니다 ..

<Style x:Key="NewRankStyle" TargetType="{x:Type RowDefinition}"> 
     <Setter Property="Height" Value="0.12*" /> 
    </Style> 

결과는 별 가치의 사용을 허용합니다.

희망 사항은 몇 가지 개념을 정리합니다.

0

행 또는 열 스타 사이징은 격자에 너비와 높이를 지정하는 경우에만 작동합니다. 그리드가 내용에 따라 자동 크기 조정을하는 경우 별 크기 조정이 작동하지 않습니다.