Не знаю насколько это противоречит паттерну, но с ходу пришло такое решение.
View:
<Button x:Name="MyButton" Command="{Binding ClickCommand}"
CommandParameter="{Binding ElementName=MyButton}"/>
ViewModel:
public class MainViewModel : BaseViewModel
{
public Command ClickCommand { get; set; }
public MainViewModel()
{
ClickCommand = new Command(ClickCommandExecute);
}
private void ClickCommandExecute(object obj)
{
Button button = obj as Button;
MessageBox.Show(button.ActualHeight.ToString() + " : " + button.ActualWidth);
}
}
Только тсссссс! ViewModel ни слова!