我在Caliburn.Micro
一起使用WPF
。我希望在单击标签时运行任何代码。我尝试了一些谷歌搜索,发现了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:我之前尝试过的是在ViewModel
中添加一个public void Info()
方法,因为这适用于按钮。但在这种情况下并非如此。
尝试附加到 MouseLeftButtonUp
事件以模拟释放鼠标左键后的单击事件。
cal:Message.Attach="[Event MouseLeftButtonUp] = [Action ShowAboutWindow()]"