WPF를 처음 사용합니다. 내 응용 프로그램에서 비디오 제목 목록을 격자의 한 열 (gridTitle)에 표시하고 다른 열에는 (usercontrol 내에서) 미디어 요소가 들어있는 하나 이상의 격자 (gridVideo)를 추가하고 gridTitle에서 선택되었습니다. 사용자 gridTitle로부터 다른 타이틀을 선택하는 방법으로서 상기그리드에서 미디어 요소를 올바르게 제거하십시오.
if(gridVideo.Children.Count > 0)
{
MediaControl temp = null;
foreach (UIElement element in gridVideo.Children)
{
if (element.GetType() == typeof(MediaControl))
temp = (MediaControl)element;
}
if(temp!=null)
gridVideo.Children.Remove(temp);
// gridMedia.Children.RemoveAt(0);
}
미디어 요소를 포함하는 사용자 제어를 제거는 다음과 같이, I 미디어 요소 (UserControl을)를 제거한다. 여기서 나는 현재 재생중인 비디오를 멈추거나 닫을 필요가 있는지 또는 WPF가 자동으로 처리 할 것인지 묻고 싶습니다. 내 주요 관심사는 미디어 요소가 백그라운드에서 버퍼에 데이터를 다운로드하지 여부입니다?
좋습니다.
동영상에 첨부 된 정보 목록이 있습니다. 그래서 미디어 요소와 다른 컨트롤을 포함하는 사용자 정의 컨트롤을 만듭니다. 따라서 미디어 요소는 비디오 및 기타 컨트롤을 표시하여 제목, 설명, 등급, 해상도 등과 같은 관련 정보를 표시하며 100 개 이상의 비디오가 있고 각 정보에는이 정보가 들어 있습니다. 사용자가 항목을 클릭하면 이전 사용자 컨트롤이 제거되고 그리드에 새 사용자 컨트롤 하나가 추가됩니다. – Rupesh
모든 정보가 데이터 바인딩 될 수 있으며 사용자 컨트롤 자체를 바꿀 필요가 없습니다. 이벤트가 다른 클래스에 바인드되어야하는 경우. 해당 사용자 정의 컨트롤에 미디어 요소를 배치하고 데이터를 표시하는 데 필요한 다른 요소를 배치하면됩니다. 선택한 인스턴스를 사용자 정의 컨트롤의 DataContext로 전달하고 거기에있는 모든 것을 묶습니다. – EvAlex