Windowsformshost не поддерживается в проекте Windows Presentation Foundation wpf

Обновлено: 07.07.2024

Тег WindowsFormsHost используется для размещения элемента управления Windows Forms, а тег wf:ListBox представляет список Windows Forms ListBox. Точно так же вы можете добавить любой элемент управления Windows Forms в свое приложение WPF.

Как создать пользовательский элемент управления WPF в XAML?

Затем во всем решении размещается дополнительный проект типа библиотеки пользовательских элементов управления WPF с пустым предопределенным пользовательским элементом управления WPF. Затем извлеките некоторые элементы WPF из пустого пользовательского элемента управления WPF. Элементы могут либо: панель инструментов, либо ввод непосредственно через окно XAML.

Как разместить составной элемент управления WPF в Windows Forms?

Дополнительные сведения о настройке элементов управления WPF см. в разделе Настройка элементов управления. В этом пошаговом руководстве вы пройдете через приложение, в котором размещен составной элемент управления WPF, для выполнения ввода данных в приложение Windows Forms. Составной элемент управления упакован в библиотеку DLL. Эту общую процедуру можно распространить на более сложные приложения и элементы управления.

Когда использовать WPF для расширения Windows Forms?

Однако, если вы вложили значительные средства в код Windows Forms, может оказаться более эффективным расширить существующее приложение Windows Forms с помощью WPF, а не переписывать его с нуля. Распространенный сценарий — когда вы хотите встроить один или несколько элементов управления, реализованных с помощью WPF, в ваше приложение Windows Forms.

Как сделать элемент управления Windows Forms невидимым?

Нажмите кнопку Щелкните, чтобы сделать невидимым, чтобы сделать элемент WindowsFormsHost невидимым. Нажмите кнопку Нажмите, чтобы свернуть, чтобы полностью скрыть элемент WindowsFormsHost из макета. Когда элемент управления Windows Forms свернут, окружающие элементы перестраиваются, чтобы занять его место.

Как сделать элемент windowsformshost невидимым в WPF?

В MainWindow.xaml.vb или MainWindow.xaml.cs скопируйте следующий код в определение класса: Нажмите F5, чтобы построить и запустить приложение. Нажмите кнопку Щелкните, чтобы сделать невидимым, чтобы сделать элемент WindowsFormsHost невидимым. Нажмите кнопку Нажмите, чтобы свернуть, чтобы полностью скрыть элемент WindowsFormsHost из макета.

Есть ли способ повернуть windowsformshost в WPF?

В отличие от элементов WPF элементы управления Windows Forms не поддерживают поворот. Элемент WindowsFormsHost не вращается вместе с другими элементами WPF при применении преобразования поворота. Любое значение поворота, отличное от 180 градусов, вызывает событие LayoutError. Скопируйте следующий код XAML в элемент Grid:

В чем разница между WinForms и WPF?

В этой статье мы сравним WPF и Winforms, чтобы вы могли выбрать, что лучше для вас. Microsoft Windows Presentation Foundation, также известная как WPF, представляет собой инфраструктуру пользовательского интерфейса, которая используется разработчиками Microsoft для создания клиентских приложений Windows, обеспечивающих интуитивно понятный и захватывающий пользовательский интерфейс.

Как использовать Windows Forms и архитектуру ввода WPF?

Windows Forms и архитектура ввода для взаимодействия с WPF 1 Немодальные формы и диалоговые окна. Вызовите метод EnableWindowsFormsInterop для элемента WindowsFormsHost, чтобы открыть немодальную форму или диалоговое окно из приложения на основе WPF. 2 Клавиатура WindowsFormsHost и обработка сообщений. 3 Клавиатура ElementHost и обработка сообщений.

Чтобы использовать WindowsFormsHost и элементы управления из WinForms, необходимо добавить в приложение ссылку на следующие сборки:

  • Интеграция WindowsForms
  • Система.Windows.Forms

В Visual Studio это можно сделать, щелкнув правой кнопкой мыши узел "Ссылки" в проекте и выбрав "Добавить ссылку":


В появившемся диалоговом окне вы должны выбрать «Сборки», а затем отметить две сборки, которые нам нужно добавить:


Использование элемента управления WinForms WebBrowser

В предыдущей статье мы использовали элемент управления WPF WebBrowser для создания небольшого веб-браузера. Однако, как указано в этой статье, элемент управления WPF WebBrowser немного ограничен по сравнению с версией WinForms. Есть много примеров того, что легко сделать с помощью версии WinForms, что либо сложнее, либо невозможно сделать с версией WPF.

Небольшим примером является свойство DocumentTitle и соответствующее событие DocumentTitleChanged, упрощающее получение и обновление заголовка окна в соответствии с заголовком текущей веб-страницы. Мы будем использовать это как предлог для тестирования версии WinForms прямо здесь, в нашем приложении WPF:


Обратите особое внимание на строку, в которой мы добавляем пространство имен WinForms к окну, чтобы мы могли ссылаться на элементы управления из него:

Это позволит нам ссылаться на элементы управления WinForms, используя префикс wf:.

Как видите, WindowsFormsHost довольно прост в использовании. У него есть свойство Child, в котором вы можете определить один элемент управления WinForms, так же как окно WPF содержит только один корневой элемент управления. Если вам нужно больше элементов управления из WinForms внутри вашего WindowsFormsHost, вы можете использовать элемент управления Panel из WinForms или любой другой элемент управления контейнера.

Элемент управления WinForms WebBrowser используется путем ссылки на сборку System.Windows.Forms с использованием префикса wf, как описано выше.

В Code-behind мы делаем первоначальный вызов Navigate, чтобы иметь видимую веб-страницу вместо пустого элемента управления при запуске. Затем мы обрабатываем событие DocumentTitleChanged, в котором мы обновляем свойство Title окна в соответствии с текущим значением DocumentTitle элемента управления WebBrowser.

Поздравляем, теперь у вас есть приложение WPF с размещенным внутри него веб-браузером WinForms.

Обзор

Как видите, использовать элементы управления WinForms внутри ваших приложений WPF довольно просто, но остается вопрос: хорошая ли это идея?

В конце концов, решение остается за вами: действительно ли вам нужен элемент управления WinForms или есть альтернатива WPF, которая могла бы работать так же хорошо?

Вашего предпочтительного языка нет в списке? Нажмите здесь, чтобы помочь нам перевести эту статью на ваш язык!

Два типа документов, поддерживаемых Windows Presentation Foundation (WPF), — это формат Flow и документ фиксированного формата. Документ нефиксированного формата изменяет содержимое в соответствии с размером экрана, в то время как документ фиксированного формата представляет содержимое независимо от размера экрана.

<р>3. Назовите пространство имен, необходимое для работы с 3D.

Для работы в 3D требуется пространство имен System.Windows.Media.Medi3D.

<р>4. Правильно ли говорить, что WPF заменил DirectX?

Нет, WPF никогда не сможет заменить DirectX. WPF нельзя использовать для создания игр с потрясающей графикой. WPF предназначен для замены формы Windows, а не DirectX.

<р>5. Что такое свойства зависимости?

Свойства, которые принадлежат определенному классу, но могут использоваться для другого, называются свойствами зависимости.

<р>6. Как можно пропорционально увеличить размер StatusBar?

Заменяя атрибут ItemsPanel в StatusBar сеткой. Столбцы сетки можно соответствующим образом настроить для получения желаемого результата.

<р>7. Что такое Freezable объекты в WPF?

Объект, состояние которого заблокировано и не может быть изменен, называется замораживаемым объектом. Такие объекты работают лучше. Также безопаснее, если они должны быть разделены между потоками.

<р>8. Почему WPF предпочтительнее Adobe Flash?

WPF — это более новая технология, поэтому в ней используются новейшие инструменты разработки. Он поддерживает более широкий спектр языков программирования и обеспечивает надежное повторное использование элементов управления.

9. Чем Silverlight отличается от браузерного приложения WPF?

<р>10. Назовите методы, представленные в DependencyObject.

Он имеет три объекта, а именно:

  • Установить значение
  • Очистить значение
  • Получить значение
<р>11. Напишите о ПРИЗМЕ.

PRISM — это платформа для создания сложных приложений для WPF, Silverlight или Windows Phone. PRISM использует MVVM, IC, шаблоны команд, DI и разделение проблем, чтобы получить слабую связь.

<р>12. Можно ли использовать Windows Forms в приложении WPF?

Да, форму Windows можно использовать в WPF. Форма Windows может отображаться как всплывающее окно WPF. Элементы управления этой формы окна можно разместить на странице WPF помимо элементов управления WPF, используя функции предустановленного элемента управления WindowsFormsHost.

<р>13. Кратко опишите CustomControl.

CustomControl расширяет функции существующих элементов управления. Он состоит из стиля по умолчанию в Themes/Generic.xaml и файла кода. Это лучший способ создать библиотеку элементов управления, а также для нее можно использовать стили или шаблоны.

14. Назовите распространенные сборки, используемые в WPF?

  • Основа презентации
  • WindowsBase
  • Основные презентации
<р>15. Определить анимацию пути в WPF

Анимация пути — это тип анимации, в котором анимированный объект движется по пути, заданному геометрией пути.

<р>16. Можно ли создавать приложения WPF без XAML?

Да, приложения WPF можно создавать без XAML, поскольку использование XAML в WPF является вопросом выбора.

17. Какие есть типы окон в WPF?

WPF имеет три типа окон:

  • Обычное окно
  • Окно страницы
  • Навигация по окну
<р>18. Как можно отсортировать элементы в ListBox?

Например, этот код сортирует элементы ContentControl на основе их свойства количества слов:

myItemsControl.Items.SortDescriptions.Добавить(новыйОписаниеСортировки("WordCount", ListSortDirection.Descending));

<р>19. Чем MVVM отличается от MVC?

MVC означает контроллер модели-представления, а MVVM означает модель-представление модели.

В MVVM вместо контроллера используется модель представления. Эта модель представления находится под уровнем пользовательского интерфейса. Он показывает объекты команд и данные, которые требуются для представления. Он действует как объект-контейнер, из которого представление получает свои действия и данные.

<р>20. Объясните перенаправленные события в WPF.

Событие, которое может вызывать обработчики более чем одного слушателя, присутствующего в дереве элементов, вместо одного объекта, вызвавшего событие, называется маршрутизированным событием.

21. Как System.Windows.Media.Visual dll используется в WPF?

Он используется всякий раз, когда возникает потребность в создании пользовательского интерфейса. Это объект рисования, который дает инструкции по созданию объекта. Эти инструкции включают непрозрачность и т. д. рисунка. Класс Visual также объединяет функции управляемых классов WPF и MilCore.dll.

22. Что такое различные панели макета в WPF?

  • Панель стека
  • Панель сетки
  • Панель холста
  • Закрепить панель
  • Обтекание панели

23. Назовите важные подсистемы в WPF

  • Windows.Controls.Control
  • Windows.DependancyObject
  • Windows.FrameworkElement
  • Windows.Media.Visuals
  • Объект
  • Threading.DispatcherObject
  • Windows.UIElement

24. Что означает BAML в WPF?

BAML – это сокращение от Binary Application Markup Language. Это не что иное, как XAML, который был токенизирован, проанализирован и преобразован в двоичную форму. BAML — это сжатый декларативный язык, который загружается и анализируется быстрее, чем XAML.

25. В чем разница между элементами управления страницы и окна в WPF?

Основное отличие заключается в том, что управление окнами доминирует над приложением Windows, а управление страницами — над размещенными приложениями браузера. Кроме того, элемент управления "Окно" может содержать элемент управления "Страница", но обратное произойти не может.

26. Что такое прикрепленные свойства в WPF?

Присоединенные свойства — это, по сути, свойства зависимостей, которые позволяют прикреплять значение к любому произвольному объекту.

27. Что такое интерфейс INotifyPropertyChanged?

InotifyPropertyChanged уведомляет клиентов, обычно тех, кто выполняет привязку, если значение свойства изменяется. У него есть событие PropertyChanged, которое вызывается каждый раз при изменении свойства объекта Model.

28. В чем основное различие между событиями и командами в модели MVVM?

Команды более эффективны, и их лучше использовать вместо событий. Действия тесно связаны с источником события, поэтому события нельзя легко использовать повторно. Но команды позволяют эффективно поддерживать несколько действий в одном месте, а затем повторно использовать их в соответствии с нашими требованиями.

29. Как можно принудительно закрыть всплывающую подсказку, которая в данный момент видна?

Его можно закрыть, установив для свойства IsOpen всплывающей подсказки значение false.

<р>30. Напишите различия между DynamicResource и StaticResource.

Основное отличие состоит в том, что StaticResource оценивает ресурс только один раз, а DynamicResource оценивает его каждый раз, когда ресурс требуется. И по этой причине DyanamicResource загружает систему, но ускоряет загрузку страниц или окон

31. Объясните шаблон MVVM.

Шаблон MVVM делит код пользовательского интерфейса на 3 основные части:

  • Модель. Представляет собой набор классов, содержащих данные, полученные из баз данных.
  • Вид – это код, соответствующий визуальному представлению данных.
  • ViewModel — это слой, который связывает представление и модель вместе. Он представляет эти данные в форме, которую легко понять. Он также определяет, как View взаимодействует с приложением.

32. Зачем нужны панели макета в WPF?

Панели макета необходимы для того, чтобы элементы управления подходили для экранов разного размера или с разным размером шрифта. Если мы расставим элементы управления по фиксированным координатам пикселя, то эта модель даст сбой при перемещении в другую среду. По этой причине необходимы панели макета.

33. Кратко напишите о UserControl.

UserControl объединяет существующие элементы управления в одну группу многократного использования. Он содержит файл XAML и код. Пользовательский элемент управления не может быть оформлен в стиле или создан по шаблону.

34. Как определить, является ли объект Freezable замороженным?

Свойство объекта "IsFrozen" можно использовать для определения того, заморожен ли замораживаемый объект.

35. Что такое единица измерения в WPF?

Все измерения выполняются в аппаратно-независимых пикселях или логических пикселях. Один пиксель равен 1/96 части дюйма. Эти логические пиксели всегда упоминаются как двойные, что позволяет им также иметь дробное значение.

36.Что такое украшение?

Это особый тип FrameworkElement, предоставляющий пользователю визуальные подсказки. Они также используются для добавления дескрипторов к элементам и предоставления информации о состоянии элемента управления. Декоративные элементы привязаны к элементу UIElement и визуализируются на поверхности, расположенной над украшаемым элементом. Эта поверхность называется AdornerLayer. Декоративные элементы в основном размещаются относительно ограниченного элемента.

37. Объясните сериализацию?

Это процесс преобразования состояния объекта в поток байтов.

38. Поддерживается ли MDI в WPF?

MDI не поддерживается в WPF. UserControl можно использовать для предоставления той же функциональности, что и MDI.

39. Что такое XBAP?

40. В чем сходство WPF и Silverlight?

Silverlight и WPF похожи в том смысле, что они оба используют XAML и используют один и тот же код, синтаксис и библиотеки.

41. Как сделать так, чтобы всплывающая подсказка появлялась при наведении курсора на отключенный элемент?

Для этой цели можно использовать свойство ShowOnDisabled. Он принадлежит классу ToolTipService.

42. Как заставить ListBox плавно прокручиваться?

По умолчанию ListBox настроен на поэлементную прокрутку. Это зависит от высоты каждого элемента и действия прокрутки, что создает грубое ощущение. Лучший способ — настроить действие прокрутки так, чтобы оно сдвигало элементы на несколько пикселей независимо от их высоты. Это делается путем установки для свойства ScrollViewer.CanContentScroll значения «false». Однако это приведет к тому, что ListBox потеряет свойство виртуализации.

43. С чего начинается выполнение в приложении WPF?

Приложения WPF, созданные в Visual Studio, выполняются без метода Main. Это связано с тем, что приложения имеют особый регистр, когда они компилируются из XAML. Это означает, что Visual Studio прикрепляет действие сборки ApplicationDefinition к XAML-файлу. Это приводит к автоматической генерации метода Main.

44. Можно ли создать службу Windows с помощью WPF?

Нет, службы Windows нельзя создать с помощью WPF. WPF — это язык представления. Службам Windows требуются определенные разрешения для выполнения некоторых функций, связанных с графическим интерфейсом. Поэтому, если он не получает необходимых разрешений, он выдает ошибки.

45. Какие существуют виды маршрутизируемых событий в WPF?

  • Прямая — это событие может быть вызвано только тем элементом, в котором оно было создано.
  • Туннелирование. Сначала это событие вызывается элементом, в котором оно было создано, а затем оно вызывается каждым последующим контейнером в визуальном дереве.
  • Всплывание — это событие сначала вызывается самым верхним контейнером в визуальном дереве, а затем вызывается каждым последовательным контейнером, лежащим ниже самого верхнего, пока не достигнет элемента, в котором оно было создано.

46. Почему лучше заключать элементы в ComboBoxItem?

У него есть некоторые важные свойства, такие как IsSelected и IsHighlighted, а также некоторые необходимые события, такие как Selected и Unselected. ComboBoxItem — это элемент управления содержимым, поэтому он очень удобен для добавления простых строк в ComboBox.

47. Как получить идентификаторы автоматизации элементов в ItemsControl?

Лучший способ сделать это – установить свойство Name, так как оно по умолчанию используется для целей автоматизации. Но если вам требуется присвоить элементу идентификатор, отличный от его имени, то свойство AutomationProperties.AutomationID можно установить в соответствии с необходимостью.

48. Как можно получить аргументы командной строки в приложении WPF?

Наиболее предпочтительным методом для этого является вызов System.Environment.GetCommandLineArgs в любой произвольной точке приложения.

49. Укажите название классов, содержащих произвольное содержимое.

<р>50. В каком NameSpace есть элементы управления Popup и Thumb?

Пространство имен system.windows.controls.primitives содержит элементы управления Popup и Thumb.

51) Объясните, что такое XAML? В чем разница между XML и XAML?

52) Расскажите о преимуществах использования XAML?

Преимущество использования XAML

  • Код XAML легко читается, и они короткие
  • Разделение кода конструктора и логики
  • Для таких инструментов, как сочетание выражений, используемых для графического дизайна, требуется XAML в качестве исходного кода.
  • Он четко разделяет роли дизайнера и разработчика.

53) Как написать код для отображения «Hello World» в XAML?

Отображается «Hello World».

54) Как в XAML указываются графические компоненты?

В XAML графические компоненты указываются с помощью открытых или закрытых тегов с атрибутами.

55) Что такое синтаксис атрибутов в XAML?

В XAML синтаксис атрибута задает значение свойства или называет обработчик события для события путем объявления атрибута элемента. Значение атрибута должно быть заключено в две кавычки (").

XAML

56) Объяснить свойства содержимого XAML?

XAML представляет собой языковую функцию, благодаря которой класс может выделять ровно одно из своих свойств в качестве свойства XAML

57) Объясните, что такое расширение разметки в XAML?

Расширения разметки — это заполнители в XAML, которые используются для разрешения свойства во время выполнения. Расширение разметки позволяет вам расширять XAML, и с помощью синтаксиса атрибутов вы также можете установить любое свойство, которое можно установить в XAML. Целью расширения разметки является обработка строки и возврат объекта. Некоторые из стандартных расширений разметки: xNull, x: Array, :StaticResource и DynamicResource.

58) Каковы четыре основных типа элементов XAML?

Четыре основных типа элементов XAML

  • Корневые элементы
  • Элементы панели
  • Элементы управления
  • Геометрические элементы

59) На что указывает префикс X: в XAML?

Префикс X: используется для сопоставления пространства имен XAML в шаблонах.

60) Какие различные префиксы X: используются в языке XAML?

  • x: Key à устанавливает уникальный ключ для каждого ресурса в словаре ресурсов.
  • x: Classà Задает пространство имен CLR (Common Language Runtime) и имя класса для класса, предоставляющего код
  • x: Name à указывает имя объекта времени выполнения для экземпляра, который существует в коде времени выполнения после обработки элемента объекта
  • x: Static à включает ссылку, которая возвращает статическое значение, которое в противном случае является XAML-совместимым свойством.
  • x: Type à Создает ссылку Type на основе имени типа.

61) Как вы можете установить атрибут свойства как литеральную строку, а не расширение разметки?

Чтобы избежать расширения разметки, вы должны использовать пустую пару фигурных скобок, например

62) Какие типы дочерних элементов может иметь объектный элемент в XAML?

Три типа дочерних элементов, которые может иметь объектный элемент

  • Предметы коллекции
  • Значение свойства содержания.
  • Значение, тип которого можно преобразовать в элемент объекта

63) Объясните, что такое конвертер типов?

Преобразователь типов полезен для преобразования строки в соответствующий тип значения, если не используется расширение разметки. Преобразователь типов определяет четыре члена для преобразования в строку и из строки для целей XAML.

  • Можно преобразовать в
  • CanConvertFrom
  • Преобразовать в
  • Конвертировать из

64) Объяснить синтаксис элемента объекта в XAML?

Для создания экземпляра класса или структуры CLR путем объявления элемента XML используется синтаксис разметки XAML. Этот синтаксис называется синтаксисом элемента объекта.

65) Какими способами можно объявлять объекты в XAML?

Объявить объекты в XAML можно тремя способами

  • Напрямую, используя синтаксис элемента объекта: этот синтаксис используется для объявления корневых объектов или вложенных объектов, которые устанавливают значения свойств.
  • Косвенно, используя синтаксис атрибута. В этом синтаксисе используется встроенное строковое значение, в котором содержится инструкция по созданию объекта. Чтобы установить значение свойства для вновь созданной ссылки, синтаксический анализатор XAML использует эту строку
  • Использование расширения разметки

66) Что должен содержать корневой элемент документа XAML?

В документе XAML корневой элемент состоит только из определенных элементов, и этими элементами являются Window, Canvas или панели.

67) Что такое привязка данных с помощью XAML?

Привязка данных обеспечивает простой способ отображения данных и взаимодействия с ними. Пример покажет, как вы можете выполнить привязку данных в XAML. Привязка в XAML выполняется с использованием синтаксиса.

68) Объясните, как можно отображать разные данные во время выполнения и во время разработки?

  • Один из способов отображения данных во время выполнения и во время разработки — объявить данные в XAML.
  • Еще один способ сделать это — объявить его в XAML, используя различные атрибуты данных из пространства имен конструктора XML. Обычно это пространство имен объявляется с префиксом d:.

69) Объясните, что такое директива function x: Key в XAML?

X: ключ уникально идентифицирует элементы, которые созданы и на которые есть ссылки в словаре, определенном XAML. Добавляя значение x: Key к элементу объекта XAML, можно идентифицировать ресурс в словаре ресурсов, и это наиболее распространенный способ идентификации.

70) Объясните, для чего используется синтаксис элемента свойства?

С помощью синтаксиса элемента свойства вы можете добавить дочерний элемент с именем в форме parent.propertyName.

71) Как можно определить пользовательские классы, используемые в XAML?

Пользовательские классы используются двумя способами

  • С кодом, создающим основное приложение Windows Presentation Foundation (WPF), или внутри исходного кода
  • В отдельной сборке как класс, например исполняемый файл или библиотека DLL, используемая в качестве библиотеки классов

72) Что такое пространство имен Xaml?

Пространство имен можно определить как среду или абстрактный контейнер, используемый для хранения логической группы уникальных идентификаторов или символов.

Ошибка: Твиттер не ответил. Пожалуйста, подождите несколько минут и обновите эту страницу.

В настоящее время я работаю над проектом с использованием Windows Presentation Foundation в Visual Studio 2010 Ultimate. В одном модуле я решил предоставить клиенту несколько отчетов. Несколько проблем, с которыми я столкнулся при создании отчетов, заключаются в следующем:

  • Собственный элемент управления средства просмотра отчетов недоступен напрямую в WPF. Таким образом, мы не можем напрямую разместить и использовать элемент управления для формирования отчета.
  • Привязка источника данных к средству просмотра отчетов в Visual Studio 2010 Ultimate, поскольку для этого требуется другой подход, чем в Visual Studio 2008 Express Edition.

Я обнаружил некоторые решения вышеуказанных проблем, а именно:

  • Ниже приведены пространства имен, которые необходимо добавить в код XAML в представлении XAML:
  • Между тегом Grid, например …, добавьте следующий код в представление XAML:

//Локальный режим обработки для ReportViewer

//Расположение определения отчета

//Источник данных и объект для отчета

Источник данных. ReportDataSource ds = new ReportDataSource("SpecificUserDataSet", список пользователей);

//Добавление ReportDataSource в DataSource средства просмотра отчетов

//Обработка и визуализация отчета

  • Чтобы добавить параметр, нажмите на вкладку "Данные отчета", выберите "Создать" -> "Параметр" и добавьте параметр и его значение.
  • Ниже показан пример отчета без данных:


Оцените это:

Поделиться:

Вот так:

Связанные

15 мыслей на тему “Использование средства просмотра отчетов в Windows Presentation Foundation (WPF)”

tbarklah 3lik a sadi9i, спасибо, чувак, очень полезно

После долгих поисков я наконец нашел его.

Большое спасибо.

Как можно печатать напрямую из средства просмотра отчетов, не отображая диалоговое окно PrintDialog?

Здравствуйте, Хрушикеш,
можете ли вы объяснить, как использовать средство просмотра отчетов в WPF для удаленной обработки? У меня есть отчет SSRS на сервере sql 2008/2012, мне нужно просто отобразить вывод отчета в wpf.
Заранее спасибо

Здравствуйте, сэр,
я не понял смысла этой строки кода

Источник данных. ReportDataSource ds = new ReportDataSource("SpecificUserDataSet", список пользователей);

это также дает мне ошибку. Я хочу спросить, что означают его параметры?
Что я должен передать в этих параметрах.

Я создал файл Dataset1.xsd
Имя отчета — Report1.rdlc
Просмотрщик отчетов — RepViewer.

и я сделал код следующим образом::

общедоступный частичный класс MainWindow : Window
SqlConnection conStr = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
public MainWindow()
InitializeComponent();
RepViewer.Load += ReportViewer_Load;
>

частное логическое значение isReportViewerLoaded;

private void ReportViewer_Load(Object sender, EventArgs e)
if (!isReportViewerLoaded)
//DataSet dataset = new DataSet();
SqlCommand cmd = new SqlCommand("Выберите * из tbEmp", conStr);
SqlDataAdapter da = new SqlDataAdapter(cmd);
//da.Fill(набор данных);

DataSet1 ds1 = новый DataSet1();
da.Fill(ds1.Tables[0]);

//Локальный режим обработки для ReportViewer
RepViewer.ProcessingMode = ProcessingMode.Local;

//Расположение определения отчета
RepViewer.LocalReport.ReportPath = "../../Report1.rdlc";

//Источник данных и объект для отчета
Источник данных отчета rds = new ReportDataSource();
rds.Name = «DataSet1.xsd»;
rds.Value = ds1.Tables[0];

//Добавление ReportDataSource в DataSource средства просмотра отчетов
RepViewer.LocalReport.DataSources.Add(rds);

//Обработка и визуализация отчета
RepViewer.RefreshReport();

этот код был скомпилирован. Но он не показывает никаких данных, но сообщает сообщение «Экземпляр источника данных не был предоставлен для источника данных DataSet1»..

Пожалуйста, ответьте как можно скорее. Мне это нужно в моем проекте.

Извините за опоздание в этой теме. Вам необходимо передать экземпляр «SpecificUserDataSet» в объект источника данных, а также список пользовательских данных, который необходимо отобразить.

Если вы все еще не понимаете, вы можете спросить меня.

Спасибо, 4 ответ…. Но я получил его в тот же день, когда спросил тебя…. Вы проделали хорошую работу, написав эту статью…. 🙂

Читайте также: