Кажется, что эта функция просто недоступна для проектов WPF.Когда это работает, и это не всегда работает, это работает только в проектах Silverlight.Однако то, что делает «Открыть в Expression Blend ...», не очень сложно, поэтому вот макрос Visual Studio, который займет его место.
Public Sub OpenInExpressionBlend()
Dim blendPath As String = Nothing
Dim key As String = "SOFTWARE\Microsoft\Expression\Blend\VS"
Dim registryKey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(key)
If Not registryKey Is Nothing Then
blendPath = registryKey.GetValue("BlendLaunchPath")
registryKey.Close()
End If
If blendPath Is Nothing Then
MsgBox("Cannot find Blend", MsgBoxStyle.Exclamation, "Open in Expression Blend")
Return
End If
If DTE.SelectedItems.Count <> 1 Then
MsgBox("Not just one item selected", MsgBoxStyle.Exclamation, "Open in Expression Blend")
Return
End If
Dim item As SelectedItem = DTE.SelectedItems.Item(1)
If Not TypeOf item.ProjectItem Is ProjectItem Then
MsgBox("Not a project item", MsgBoxStyle.Exclamation, "Open in Expression Blend")
Return
End If
Dim projectItem As ProjectItem = item.ProjectItem
Dim project As Project = projectItem.ContainingProject
Dim file As String = projectItem.Name
If file.Substring(file.Length - 5) <> ".xaml" Then
MsgBox("Not a xaml file", MsgBoxStyle.Exclamation, "Open in Expression Blend")
Return
End If
While TypeOf projectItem.Collection.Parent Is ProjectItem
projectItem = CType(projectItem.Collection.Parent, ProjectItem)
file = projectItem.Name & "\" & file
End While
file = """" & file & """"
Dim projectPath As String = """" & project.FullName & """"
Dim blendArgs As String = projectPath & " /file:" & file
Dim process As System.Diagnostics.Process = New System.Diagnostics.Process()
& blendArgs) process.Start (blendPath, blendArgs) End Sub
Обновление:
Чтобы использовать это, добавьте макрос с помощью Macro IDE, а затем добавьте его в контекстное меню элемента проекта, например:
Инструменты ->Настройка -> Команды -> Контекстное меню: Контекстные меню проекта и решения |Элемент -> Добавить команду ... -> Категории: Макрос -> Команды: Macros.MyMacros.Personal.OpenInExpressionBlend -> ОК
Изменить выделение -> Имя: Открыть в бленде выражения ...
Переместить вниз: (переместиться ниже Открыть с помощью ...)
Примечание: команда будет зависеть от того, к какому модулю вы добавили ее.