WPF 는 서로 배척 하고 그룹 을 나 누 는 RadioButton 식 단일 선택 메뉴 를 지원 합 니 다.
1468 단어 WPFRadiomenuitemRadioButton
stackoverflow 의 링크: http://stackoverflow.com/a/35692688/5972372
이 문제 아래 에 또 다른 해결 방안 이 있 으 니 볼 수 있 지만, 나 는 여전히 이런 실현 방식 을 좋아 하고, 간단 하고 깨끗 하 다.
public class RadioMenuItem : MenuItem
{
public string GroupName { get; set; }
protected override void OnClick()
{
var c = Parent as ItemsControl;
if (null != c)
{
var rmi = c.Items.OfType<RadioMenuItem>().FirstOrDefault(i => i.GroupName == GroupName && i.IsChecked);
if (null != rmi) rmi.IsChecked = false;
IsChecked = true;
}
base.OnClick();
}
private static readonly Geometry RadioDot = Geometry.Parse("M9,5.5L8.7,7.1 7.8,8.3 6.6,9.2L5,9.5L3.4,9.2 2.2,8.3 1.3,7.1L1,5.5L1.3,3.9 2.2,2.7 3.4,1.8L5,1.5L6.6,1.8 7.8,2.7 8.7,3.9L9,5.5z");
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
var p = GetTemplateChild("Glyph") as Path;
if (null == p) return;
//var x = p.Width/2;
//var y = p.Height/2;
//var r = Math.Min(x, y) - 1;
//var e = new EllipseGeometry(new Point(x,y), r, r);
//p.Data = e.GetFlattenedPathGeometry();
p.Data = RadioDot;
}
private new bool IsCheckable { get; } = false;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MaterialDesign의 ComboBox HasClearButton 크기 변경WPF MaterialDesign은 편리하지만 때로는 표시가 너무 크거나 약간 사용하기 쉽습니다. ComboBox를 사용할 때 선택한 버튼을 지우려면 지우기 버튼을 표시할 수 있습니다. 아래와 같은 표시가 됩니다 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.