我正在使用 WPF
和 Caliburn.Micro
。我希望在单击标签时运行任何代码。我尝试了一些谷歌搜索,发现了 cal:Message.Attach
。
XAML:
<Label x:Name="Info" Content="Info" HorizontalAlignment="Left" Margin="305,440,0,0"
VerticalAlignment="Top" FontFamily="Tahoma" FontSize="10" FontWeight="Bold" cal:Message.Attach="[Action ShowAboutWindow()]"/>
C#:
public void ShowAboutWindow()
{
MessageBox.Show("xyz"); // just to test whether ShowAboutWindow is executed whatsoever (see explanation below)
WindowManager.ShowWindow(new AboutViewModel(EventAggregator, WindowManager, SettingsManager));
}
但是,ShowAboutWindow
没有运行。我添加了一个 MessageBox
以确保不是 WindowManager
搞砸了。
我怎样才能实现我的愿望?
编辑 1:我什至之前尝试过将 public void Info()
方法添加到 ViewModel
,因为这适用于按钮。但在本例中并非如此。
最佳答案
尝试附加到 MouseLeftButtonUp
事件以模拟释放鼠标左键后的点击事件。
cal:Message.Attach="[Event MouseLeftButtonUp] = [Action ShowAboutWindow()]"
关于c# - 标签上的 Caliburn Micro 运行代码点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41559583/