Study/C#
[C#] ScrollViewer 안에 StackPanel을 사용해서 스크롤되는 가변 UI리스트 만들기.
I'm 영서
2024. 5. 3. 10:03
반응형
이번에는 가변 UI를 만들어보자. 지난번 캘린더를 만들때는 Grid를 사용했는데, 이번에는 DevExpress의 LayoutControl을 사용해서 만들어보려고 한다.
물론 Grid를 이용하는경우 Grid.ColSpan등을 이용해 높이, 너비를 조절한후 사용하면 동일한 결과를 얻을 수 있다.
먼저 가변적으로 추가할 컨텐츠를 만든다.
public event EventHandler RemoveRequested;
private void RemoveButton_Click(object sender, RoutedEventArgs e)
{
// RemoveRequested 이벤트를 발생시키며, 이 UserControl을 제거하도록 요청
RemoveRequested?.Invoke(this, EventArgs.Empty);
}
이제 이게 부모레이아웃에서 ScrollViewer에 들어가야한다.
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel x:Name="ItemsContainer"/>
</ScrollViewer>
위와같이 ScrollViwer와 StackPanel을 선언해준뒤 코드 비하인드에서
var newItem = new EMBRACE_HFESelector(ItemsContainer.Children.Count + 1);
newItem.RemoveRequested += (s, args) =>
{
// UserControl 제거
ItemsContainer.Children.Remove(s as MyListTest);
};
ItemsContainer.Children.Add(newItem);
추가를 해주면 된다. 간단히 구현이 된다.
반응형