2014-06-11 1 views
1

같은 그리드에서 특정 행의 불투명도를 설정하고 난 다음 스냅 샷으로 설명 상황에 따라 오전 방법 :C#을 : 나는 실버 C#을 devloper입니다

enter image description here

당신이 볼 수 있듯이 나는 그리드가 (prgramtically 내게 주어진 옵션을 C#을 사용하여 만들어야 만).

그리고 그 첫 번째 행 (항상 표시) 확인란을 선택하면 두 번째 전체 행의 불투명도를 0.3으로 설정하고 선택을 취소하면 세 번째 전체 행의 불투명도가 0.3으로 설정됩니다 (모든 세 열). (그냥 행하지 전체 childGrid의 불투명도를 만들 수 있기 때문에하지만 난 행 방향 확인 및 체크 박스 해제 확인에 불투명도를 원하는)

Grid childGrid = new Grid(); 
childGrid.ColumnDefinitions.Add(new ColumnDefinition()); 
childGrid.ColumnDefinitions.Add(new ColumnDefinition()); 
childGrid.ColumnDefinitions.Add(new ColumnDefinition()); 
for (int i = 0; i < totalRows; i++) 
{ 
    childGrid.RowDefinitions.Add(new RowDefinition() { 
     Height = GridLength.Auto 
    }); 
} 
CheckBox chb = new CheckBox(); 
chb.Checked += (o, e) => 
    { 
    txtblkShowStatus.Text = param.Parameter[index].Component.Attributes.Showstatus; 
    TextBlock txt = new TextBlock(); 
    txt.Text = "Hello from second row"; 
    Grid.SetColumn(txt, 1); 
    Grid.SetRow(txt, 1); 
    // childGrid.Opacity = 0.3; 
    childGrid.Children.Add(txt); 
}; 
chb.Unchecked += (o, e) => 
    { 
    txtblkShowStatus.Text = "No"; 
    TextBlock txt = new TextBlock(); 
    txt.Text = "Hello from third row"; 
    Grid.SetColumn(txt, 1); 
    Grid.SetRow(txt, 2); 
    // childGrid.Opacity = 0.3; 
    childGrid.Children.Add(txt); 
}; 

Grid.SetColumn(txtblkShowStatus, 2); 
Grid.SetRow(txtblkShowStatus, 0); 
childGrid.Children.Add(txtblkShowStatus); 
:이 작업을 수행하는

내 시도는 (아마 잘못)입니다

어떻게 생각하십니까? 도움을 요청할 수있는 코드 나 로직이 있으면 감사하겠습니다. 또는 당신이 당신의 txt 자녀를 (다시 80 년대 느낌!) 당신이 할 수 생성되는 경우 동일한

답변

1
Grid childGrid = new Grid(); 

    Grid Grdrow1 = new Grid(); 
    Grid Grdrow2 = new Grid();    

    childGrid.ColumnDefinitions.Add(new ColumnDefinition()); 
    childGrid.ColumnDefinitions.Add(new ColumnDefinition()); 
    childGrid.ColumnDefinitions.Add(new ColumnDefinition()); 
    for (int i = 0; i < 3; i++) 
    { 
     childGrid.RowDefinitions.Add(new RowDefinition() 
     { 
      Height = GridLength.Auto 
     }); 
    } 
    CheckBox chb = new CheckBox(); 
    chb.Content = "Checkbox"; 
    chb.Checked += (o, e) => 
    { 
     TextBlock txt = new TextBlock(); 
     txt.Text = "Hello from second row"; 
     Grid.SetColumn(Grdrow1, 1); 
     Grid.SetRow(Grdrow1, 1); 
     Grdrow1.Children.Add(txt); 


     Grdrow2.Opacity = 0; 
     Grdrow1.Opacity = 1; 


     childGrid.Children.Add(Grdrow1); 
    }; 
    chb.Unchecked += (o, e) => 
    { 
     TextBlock txt = new TextBlock(); 
     txt.Text = "Hello from third row"; 
     Grid.SetColumn(Grdrow2, 1); 
     Grid.SetRow(Grdrow2, 2); 
     Grdrow2.Children.Add(txt); 


     Grdrow2.Opacity = 1; 
     Grdrow1.Opacity = 0; 


     childGrid.Children.Add(Grdrow2); 
    }; 

    childGrid.Children.Add(chb); 
    LayoutRoot.Children.Add(childGrid); 

다음은 예제입니다. 여기에서 각 두 행에 대해 두 개의 새로운 그리드를 만들고 관련 텍스트 상자를 각 행에 추가 한 다음 그리드가 하위 그리드에 추가됩니다.

그런 다음 두 번째 행 격자가 숨겨지고 다른 하나가 보이기를 선택한 다음 선택을 취소하고 반대를 수행합니다. 불투명도 매개 변수를 변경할 수 있습니다.

+0

보일 챠 마레 슈 :) (https://translate.google.com/#fr/en/Voil%C3%A0%20%C3%87a%20marche) – Sss

1

을 달성 할 anohter 논리가있을 경우 설명하시기 바랍니다 수, 대신를 작성하고 그리드에 할당의 행/열에서 부모 그리드에 걸쳐 동일한 열을 갖는 자체 그리드에서 생성하십시오. 그런 다음 해당 행 격자의 불투명도를 변경할 수 있습니다.

유일한 주목할 점은 각 행 격자 열의 너비를 동일하게 유지하는 것이 더 많은 작업을 수행하지만 해당 열 너비를 부모 그리드 열 너비의 실제 너비에 바인딩하여 얻을 수 있다는 것입니다.

+0

다른 옵션은 열을 가로 지르는 흰색 (또는 창 배경과 일치하는 모든 색상) 사각형으로 가짜로 만드는 것입니다. 사물의 눈에 잘 보이지 않게하려면 사각형의 불투명도를 높입니다. – Mashton