WPF는 Button 내부의 그리드 위치 수정

토토로

A Button에는 Grid. 구조는 다음과 같습니다.

<Button>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="3*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

        <Viewbox Grid.Column="0">
            <TextBlock></TextBlock>
        </Viewbox>

        <Viewbox Grid.Column="1">
            <TextBlock></TextBlock>
        </Viewbox>
    </Grid>
</Button>

문제는 TextBlocks 위치가 고정되어 있지 않아 왼쪽 텍스트가 길어지면 격자 선이 오른쪽으로 이동하는 다음과 같은 상황을 볼 수 있습니다. TextBlock그리드 셀 내부에 s 위치를 고정 하는 방법 (텍스트 길이에 관계없이 중간 그리드 선이 유지됨)?

여기에 이미지 설명 입력


편집 : 위의 XAML은 TextBlocks의 위치를 ​​그대로 수정하지만 Grid버튼 안에있는 경우에는 작동하지 않습니다 . 은색 버튼에 파란색 배경이있는 그리드 아래 이미지 : 주로 그리드가 버튼의 다른 영역을 차지하기 때문에 텍스트가 변경되면 (비율은 동일하게 유지되는 동안) 그리드 선이 변경되는 것을 볼 수 있습니다.

그래서 내 진짜 질문은 : Grid전체 버튼을 차지하는 방법은 무엇입니까? (그리드가 고정되어 있으면 그리드 선도 고정됩니다.)

여기에 이미지 설명 입력 여기에 이미지 설명 입력


EDIT2 : 아래는 위의 XAML로 표시되는 Button, Grid, Viewbox, TextBlock 구조를 생성하는 코드입니다. 이 코드 Button는 녹색 Grid이 전체 파란색 Button으로 늘어나지 않고 점유 영역이 내용에 따라 달라지는 아래와 같이 s를 생성합니다 . Grid의 속성을 g.HorizontalAlignment = HorizontalAlignment.Stretch; g.VerticalAlignment = VerticalAlignment.Stretch;작동하지 않는 것으로 설정 합니다.

여기에 이미지 설명 입력

Button b = new Button();
b.Background = Brushes.DeepSkyBlue;

Grid g = new Grid();
g.Name = "grid";
g.ShowGridLines = true;
g.Background = Brushes.LimeGreen;
g.HorizontalAlignment = HorizontalAlignment.Stretch;
g.VerticalAlignment = VerticalAlignment.Stretch;

//create columns
for (int i = 0; i < 2; i++)
{
    int len = i == 0 ? 3 : 1;
    ColumnDefinition cd = new ColumnDefinition();
    cd.Width = new GridLength(len, GridUnitType.Star);
    g.ColumnDefinitions.Add(cd);
}


//viewbox col 0
Viewbox vb = new Viewbox();
TextBlock tb1 = new TextBlock();
vb.Child = tb1;
Grid.SetRow(vb, 0);
Grid.SetColumn(vb, 0);
g.Children.Add(vb);

//viewbox col 1
Viewbox vb2 = new Viewbox();
TextBlock updown = new TextBlock();
vb2.Child = updown;
//specify the Marlett Font
updown.Style = (Style)Application.Current.FindResource("updownBlock");
Grid.SetRow(vb2, 0);
Grid.SetColumn(vb2, 1);
g.Children.Add(vb2);

//add grid to button
b.Content = g;
Pushpraj

이것은 도움이 될 것입니다

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition Width="auto"/>
    </Grid.ColumnDefinitions>

    <Viewbox Grid.Column="0">
        <TextBlock></TextBlock>
    </Viewbox>

    <Viewbox Grid.Column="1">
        <TextBlock></TextBlock>
    </Viewbox>
</Grid>

이 예제를 사용하면 그리드는 먼저 필요한 공간을 오른쪽 열에 할당하고 나머지 공간은 왼쪽 열에 할당합니다.

또한 * 높이가 그리드의 기본값 인 1 행으로 행 정의를 제거했습니다.


편집하다

사용 가능한 공간의 가중치 비율을 기반으로 공간을 분배하기 위해 두 열에 별 값으로 가중치를 정의 할 수 있습니다.

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="3*"/>
    <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>

위의 예에서 그리드는 전체 공간의 1/4에 렌더링 될 오른쪽 열보다 왼쪽 열을 3 배 더 크게 렌더링합니다.


편집하다

그리드가 전체 공간을 차지할 수 있도록 버튼에 HorizontalContentAlignment="Stretch"& VerticalContentAlignment="Stretch"설정 합니다. 기본적으로 중앙입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

그리드 내부의 WPF Border 열 범위로 인해 UI가 고정되는 이유는 무엇입니까?

분류에서Dev

Tkinter는 그리드 위치 정렬

분류에서Dev

그리드로 배치 된 상위 위젯 내부에 위치가있는 위젯 배치

분류에서Dev

WPF 그리드의 공간을 채우기 위해 빈 그리드 설정

분류에서Dev

조부모에게 절대 위치하는 정적 컨테이너 내부의 CSS 클리핑 이미지

분류에서Dev

고정 위치와 겹치는 그리드 항목

분류에서Dev

주 그리드의 특정 열로 하위 그리드를 시작하는 방법이 있습니까? 아니면 하위 그리드 아이콘 열 위치를 이동할 수 있습니까?

분류에서Dev

그리드 내부의 WPF 이미지가 정렬되지 않습니다.

분류에서Dev

div 태그 내부의 인라인 이미지 위치 조정

분류에서Dev

그리드 내부의 Material-UI 절대 위치

분류에서Dev

지리적 위치 문자열 SQL 내부의 변수

분류에서Dev

WPF는 그리드에서 이미지 위치를 설정합니다 (행 및 열 아님).

분류에서Dev

CSS 그리드 레이아웃의 헤더 고정 위치

분류에서Dev

위치를 방해하는 슬라이드 간 jQuery / CSS 전환 문제 : 슬라이드 내부 성능 수정

분류에서Dev

스택 패널의 그리드로 wpf 그리드 크기 조정이 내부 그리드에서 minWidth 속성을 제거합니다.

분류에서Dev

CSS 그리드 항목 주위에 내부 테두리를 설정하는 방법은 무엇입니까?

분류에서Dev

CSS 그리드 항목 주위에 내부 테두리를 설정하는 방법은 무엇입니까?

분류에서Dev

수학을 보여주는 방법. 데이터 그리드 내부의 벡터?

분류에서Dev

드래그하는 동안 jquery 드래그 가능 요소의 위치 설정

분류에서Dev

고정 위치에서 다중 그래프의 노드 그리기

분류에서Dev

CSS 그리드 카드의 내용을 수직으로 정렬하는 방법

분류에서Dev

부정적인 위치를 적용하는 드래그 앤 드롭

분류에서Dev

MATLAB 리스너가 내 코드의 일부를 무시하고 원치 않는 그림을 그립니다.

분류에서Dev

IF () 함수 내부의 하위 쿼리

분류에서Dev

dart의 일부 위치에서 null을 수신하는 경우 필드를 어떻게 정렬합니까?

분류에서Dev

WPF-행 및 열 정의를 사용하는 그리드-일부 행의 열을 무시하는 방법

분류에서Dev

컨테이너 내부의 내부 프레임을 특정 위치로 아이콘 화하는 방법

분류에서Dev

그리드 클래스 내부의 드래그 앤 드롭에서 잘못된 마우스 위치

분류에서Dev

.net 기본 클래스 라이브러리 메서드를 재정의 할 수있는 위치

Related 관련 기사

  1. 1

    그리드 내부의 WPF Border 열 범위로 인해 UI가 고정되는 이유는 무엇입니까?

  2. 2

    Tkinter는 그리드 위치 정렬

  3. 3

    그리드로 배치 된 상위 위젯 내부에 위치가있는 위젯 배치

  4. 4

    WPF 그리드의 공간을 채우기 위해 빈 그리드 설정

  5. 5

    조부모에게 절대 위치하는 정적 컨테이너 내부의 CSS 클리핑 이미지

  6. 6

    고정 위치와 겹치는 그리드 항목

  7. 7

    주 그리드의 특정 열로 하위 그리드를 시작하는 방법이 있습니까? 아니면 하위 그리드 아이콘 열 위치를 이동할 수 있습니까?

  8. 8

    그리드 내부의 WPF 이미지가 정렬되지 않습니다.

  9. 9

    div 태그 내부의 인라인 이미지 위치 조정

  10. 10

    그리드 내부의 Material-UI 절대 위치

  11. 11

    지리적 위치 문자열 SQL 내부의 변수

  12. 12

    WPF는 그리드에서 이미지 위치를 설정합니다 (행 및 열 아님).

  13. 13

    CSS 그리드 레이아웃의 헤더 고정 위치

  14. 14

    위치를 방해하는 슬라이드 간 jQuery / CSS 전환 문제 : 슬라이드 내부 성능 수정

  15. 15

    스택 패널의 그리드로 wpf 그리드 크기 조정이 내부 그리드에서 minWidth 속성을 제거합니다.

  16. 16

    CSS 그리드 항목 주위에 내부 테두리를 설정하는 방법은 무엇입니까?

  17. 17

    CSS 그리드 항목 주위에 내부 테두리를 설정하는 방법은 무엇입니까?

  18. 18

    수학을 보여주는 방법. 데이터 그리드 내부의 벡터?

  19. 19

    드래그하는 동안 jquery 드래그 가능 요소의 위치 설정

  20. 20

    고정 위치에서 다중 그래프의 노드 그리기

  21. 21

    CSS 그리드 카드의 내용을 수직으로 정렬하는 방법

  22. 22

    부정적인 위치를 적용하는 드래그 앤 드롭

  23. 23

    MATLAB 리스너가 내 코드의 일부를 무시하고 원치 않는 그림을 그립니다.

  24. 24

    IF () 함수 내부의 하위 쿼리

  25. 25

    dart의 일부 위치에서 null을 수신하는 경우 필드를 어떻게 정렬합니까?

  26. 26

    WPF-행 및 열 정의를 사용하는 그리드-일부 행의 열을 무시하는 방법

  27. 27

    컨테이너 내부의 내부 프레임을 특정 위치로 아이콘 화하는 방법

  28. 28

    그리드 클래스 내부의 드래그 앤 드롭에서 잘못된 마우스 위치

  29. 29

    .net 기본 클래스 라이브러리 메서드를 재정의 할 수있는 위치

뜨겁다태그

보관