2012-03-02 3 views
2

나는 몇 개의 레이블과 텍스트 박스를 호스팅하는 간단한 그리드 레이아웃을 가지고있다. 첫 번째 열의 레이블, 두 번째 열의 레이블.WPF 열과 행 정의에 대한 속기가 있습니까?

새 상자를 추가 할 때마다 새블록에 빈 <RowDefinition />을 추가해야 새로운 행을 사용할 수 있습니다. 이 줄에 어떤 스타일도 붙어 있지 않기 때문에, 이런 일을 막을 수있는 일종의 속기가 있습니까?

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="65" /> 
    <ColumnDefinition Width="*" /> 
</Grid.ColumnDefinitions> 
<Grid.RowDefinitions> 
    <RowDefinition /> 
    <RowDefinition /> 
    <RowDefinition /> 
    <RowDefinition /> 
    <RowDefinition /> 
    <RowDefinition /> 
    <RowDefinition /> 
    <RowDefinition /> 
    <RowDefinition /> 
</Grid.RowDefinitions> 

답변

4

아니요, 이에 대한 간단한 손쉬운 방법은 없지만 직접 솔루션을 작성하거나 다른 사람이 이미 가지고있는 프레임 워크를 사용할 수 있습니다.

예를 들어 CODE framework을 사용하면 Listing 6 here과 같이 마크 업을 정의 할 수 있습니다. 이 기능은 사용자 정의 패널을 사용하여 일반적인 편집 양식의 정의를 크게 단순화합니다.

source을 다운로드하고 해당 구현을 살펴보고 필요에 맞게 조정할 수 있습니다.

+0

덕분에, CODE 아마 내 작은 일회성 응용 프로그램에 대한 약간의 과잉이다, 그러나 나는 미래의 프로젝트 난 그냥이 아이디어에 대한 제안을 제출 한 – Collin

+0

을 위해 그것을하겠습니다. 동의하면 [가서 투표하십시오.] (https://visualstudio.uservoice.com/forums/121579-visual-studio-2015/suggestions/13962687-wpf-grid-column-height-definition-shorthand). – Ben

2

그리드를 서브 클래스 화하고 필요한 모든 동작을 추가 할 수 있습니다.

Here 자동 Grid.Row 현재 정의 카운트보다 크다마다뿐만 아니라 임의의 새로운 오브젝트 AutoGridEndRow 행을 삽입 AutoGrid의 구현이다. 아래

사용법 :

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:my="clr-namespace:WpfApplication1" 
     Title="Window1" Height="300" Width="300"> 
    <my:AutoGrid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="65" /> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 

    <Label Content="Label1" /> 
    <TextBox Grid.Column="1" /> 
    <my:AutoGridEndRow /> 

    <Label Content="Label1" /> 
    <TextBox Grid.Column="1" /> 

    </my:AutoGrid> 
</Window> 
+0

추가해 주셔서 감사합니다.이 작업을 완료하는 데 꽤 매끄러운 방법입니다. – Collin