MarkupSampleDlg.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:18k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // MarkupSampleDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "MarkupSample.h"
  5. #include "MarkupSampleDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CMarkupSampleDlg dialog
  13. CMarkupSampleDlg::CMarkupSampleDlg(CWnd* pParent /*=NULL*/)
  14. : CXTResizeDialog(CMarkupSampleDlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CMarkupSampleDlg)
  17. //}}AFX_DATA_INIT
  18. // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
  19. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  20. }
  21. void CMarkupSampleDlg::DoDataExchange(CDataExchange* pDX)
  22. {
  23. CXTResizeDialog::DoDataExchange(pDX);
  24. //{{AFX_DATA_MAP(CMarkupSampleDlg)
  25. DDX_Control(pDX, IDC_TREE_MARKUP, m_wndTree);
  26. DDX_Control(pDX, IDC_BUTTON_MORE, m_btnMore);
  27. DDX_Control(pDX, IDC_CHECK_MARKUP, m_wndCheckBox);
  28. DDX_Control(pDX, IDC_BUTTON_MARKUP, m_wndButton);
  29. DDX_Control(pDX, IDC_RADIO_MARKUP, m_wndRadio);
  30. DDX_Control(pDX, IDC_STATIC_MARKUP, m_wndStatic);
  31. DDX_Control(pDX, IDC_LIST_MARKUP, m_wndList);
  32. DDX_Control(pDX, IDC_TABCONTROL, m_wndTabControl);
  33. //}}AFX_DATA_MAP
  34. }
  35. BEGIN_MESSAGE_MAP(CMarkupSampleDlg, CXTResizeDialog)
  36. //{{AFX_MSG_MAP(CMarkupSampleDlg)
  37. ON_WM_SYSCOMMAND()
  38. ON_WM_PAINT()
  39. ON_WM_QUERYDRAGICON()
  40. ON_COMMAND(ID_MORE_POPUPCONTROL, OnMorePopupcontrol)
  41. ON_COMMAND(ID_MORE_UNICODESUPPORT, OnMoreUnicodesupport)
  42. ON_WM_ERASEBKGND()
  43. ON_COMMAND(ID_MORE_TASKDIALOG, OnMoreTaskdialog)
  44. //}}AFX_MSG_MAP
  45. ON_CBN_DROPDOWN(IDC_BUTTON_MORE, OnMoreDropDown)
  46. ON_NOTIFY(TCN_SELCHANGE, IDC_TABCONTROL, OnTabControlSelChanged)
  47. END_MESSAGE_MAP()
  48. /////////////////////////////////////////////////////////////////////////////
  49. // CMarkupSampleDlg message handlers
  50. BOOL CMarkupSampleDlg::OnInitDialog()
  51. {
  52. CXTResizeDialog::OnInitDialog();
  53. // Add "About..." menu item to system menu.
  54. // IDM_ABOUTBOX must be in the system command range.
  55. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
  56. ASSERT(IDM_ABOUTBOX < 0xF000);
  57. CMenu* pSysMenu = GetSystemMenu(FALSE);
  58. if (pSysMenu != NULL)
  59. {
  60. CString strAboutMenu;
  61. strAboutMenu.LoadString(IDS_ABOUTBOX);
  62. if (!strAboutMenu.IsEmpty())
  63. {
  64. pSysMenu->AppendMenu(MF_SEPARATOR);
  65. pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  66. }
  67. }
  68. // Set the icon for this dialog.  The framework does this automatically
  69. //  when the application's main window is not a dialog
  70. SetIcon(m_hIcon, TRUE); // Set big icon
  71. SetIcon(m_hIcon, FALSE); // Set small icon
  72. UINT nIDFavorite = 10;
  73. XTPImageManager()->SetIcons(_T("FAVORITES.PNG"), &nIDFavorite, 1, 0); 
  74. UINT nIDHelp = 12;
  75. XTPImageManager()->SetIcons(_T("HELP.BMP"), &nIDHelp, 1, 0); 
  76. m_wndStatic.SetMarkupText(
  77. "<Border Padding='4' BorderThickness='1' BorderBrush='#767676' Background='#e4ecf7'>"
  78. "<StackPanel TextBlock.FontFamily='Tahoma'>"
  79. "   <TextBlock Padding='1, 3, 1, 3' FontWeight='Bold'>Change Case</TextBlock>"
  80. "   <TextBlock Padding='9, 6, 30, 7' TextWrapping='Wrap'>Change all the selected text to UPPERCASE, lowercase, or <Hyperlink ToolTip='Some other capitalization'>other</Hyperlink> common capitalizations.</TextBlock>"
  81. "   <Border Height='1' Background='#9ebbdd' />"
  82. "   <Border Height='1' Background='White' />"
  83. "   <StackPanel Margin='1, 7, 0, 3' Orientation='Horizontal'>"
  84. "        <Image Source='12'/><TextBlock Margin='7, 0, 0, 0' VerticalAlignment='Center' FontWeight='Bold'>Press F1 for more help.</TextBlock>"
  85. "   </StackPanel>"
  86. "</StackPanel>"
  87. "</Border>");
  88. m_wndStatic.AddHandler(CXTPMarkupHyperlink::m_pClickEvent, CreateMarkupClassDelegate(this, &CMarkupSampleDlg::OnHyperlinkClick));
  89. UINT nIDLove = 13;
  90. XTPImageManager()->SetIcons(_T("LOVE.PNG"), &nIDLove, 1, 0); 
  91. m_wndRadio.EnableMarkup();
  92. m_wndCheckBox.EnableMarkup();
  93. m_wndButton.EnableMarkup();
  94. HTREEITEM hItemRoot = m_wndTree.AddItem(_T("Personal Folders"), -1, -1, TVI_ROOT);
  95. m_wndTree.AddItem(_T("Deleted Items"), -1, -1, hItemRoot);
  96. m_wndTree.AddItem(_T("Drafts"), -1, -1, hItemRoot);
  97. m_wndTree.AddItem(_T("<TextBlock><Bold>Inbox</Bold> <Run Foreground='Blue' Text='(1)'/></TextBlock>"), -1, -1, hItemRoot);
  98. m_wndTree.AddItem(_T("<TextBlock><Bold>Junk E-mail</Bold> <Run Foreground='Green' Text='[3]'/></TextBlock>"), -1, -1, hItemRoot);
  99. m_wndTree.AddItem(_T("Outbox"), -1, -1, hItemRoot);
  100. m_wndTree.Expand(hItemRoot, TVE_EXPAND);
  101. //m_wndTabControl.SetAppearance(xtpTabAppearanceStateButtons);
  102. m_wndTabControl.SetAppearance(xtpTabAppearanceVisualStudio);
  103. m_wndTabControl.GetPaintManager()->m_clientFrame = xtpTabFrameSingleLine;
  104. m_wndTabControl.EnableMarkup();
  105. m_wndTabControl.InsertItem(0, _T("<TextBlock>ListBox <Run Foreground='Green'>(3 Items)</Run></TextBlock>"));
  106. m_wndTabControl.InsertItem(1, _T("<TextBlock>ListBox <Run Foreground='Red'>(9 Items)</Run></TextBlock>"));
  107. m_btnMore.SetPushButtonStyle(xtpButtonDropDown);
  108. SetResize(IDC_LIST_MARKUP, SZ_TOP_LEFT, SZ_BOTTOM_RIGHT);
  109. SetResize(IDC_TABCONTROL, SZ_TOP_LEFT, SZ_TOP_RIGHT);
  110. SetResize(IDC_LABEL_TREEVIEW, SZ_BOTTOM_LEFT, SZ_BOTTOM_LEFT);
  111. SetResize(IDC_TREE_MARKUP, SZ_BOTTOM_LEFT, SZ_BOTTOM_CENTER);
  112. SetResize(IDC_LABEL_STATIC, SZ_BOTTOM_CENTER, SZ_BOTTOM_RIGHT);
  113. SetResize(IDC_STATIC_MARKUP, SZ_BOTTOM_CENTER, SZ_BOTTOM_RIGHT);
  114. SetResize(IDC_LABEL_BUTTONS, SZ_BOTTOM_LEFT, SZ_BOTTOM_LEFT);
  115. SetResize(IDC_RADIO_MARKUP, SZ_BOTTOM_LEFT, SZ_BOTTOM_LEFT);
  116. SetResize(IDC_CHECK_MARKUP, SZ_BOTTOM_LEFT, SZ_BOTTOM_LEFT);
  117. SetResize(IDC_BUTTON_MARKUP, SZ_BOTTOM_LEFT, SZ_BOTTOM_LEFT);
  118. SetResize(IDC_BUTTON_MORE, SZ_BOTTOM_CENTER, SZ_BOTTOM_CENTER);
  119. SetResize(IDOK, SZ_BOTTOM_CENTER, SZ_BOTTOM_CENTER);
  120. return TRUE;  // return TRUE  unless you set the focus to a control
  121. }
  122. void CMarkupSampleDlg::AddListItem(LPCTSTR lpszMarkup)
  123. {
  124. MARKUP_LISTITEM* pItem = new MARKUP_LISTITEM(&m_wndList);
  125. pItem->Resolve(lpszMarkup);
  126. m_wndList.AddString((LPCTSTR)pItem);
  127. }
  128. void CMarkupSampleDlg::OnSysCommand(UINT nID, LPARAM lParam)
  129. {
  130. if ((nID & 0xFFF0) == IDM_ABOUTBOX)
  131. {
  132. CAboutDlg dlgAbout;
  133. dlgAbout.DoModal();
  134. }
  135. else
  136. {
  137. CXTResizeDialog::OnSysCommand(nID, lParam);
  138. }
  139. }
  140. // If you add a minimize button to your dialog, you will need the code below
  141. //  to draw the icon.  For MFC applications using the document/view model,
  142. //  this is automatically done for you by the framework.
  143. void CMarkupSampleDlg::OnPaint() 
  144. {
  145. if (IsIconic())
  146. {
  147. CPaintDC dc(this); // device context for painting
  148. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  149. // Center icon in client rectangle
  150. int cxIcon = GetSystemMetrics(SM_CXICON);
  151. int cyIcon = GetSystemMetrics(SM_CYICON);
  152. CRect rect;
  153. GetClientRect(&rect);
  154. int x = (rect.Width() - cxIcon + 1) / 2;
  155. int y = (rect.Height() - cyIcon + 1) / 2;
  156. // Draw the icon
  157. dc.DrawIcon(x, y, m_hIcon);
  158. }
  159. else
  160. {
  161. CXTResizeDialog::OnPaint();
  162. }
  163. }
  164. // The system calls this to obtain the cursor to display while the user drags
  165. //  the minimized window.
  166. HCURSOR CMarkupSampleDlg::OnQueryDragIcon()
  167. {
  168. return (HCURSOR) m_hIcon;
  169. }
  170. void CMarkupSampleDlg::OnHyperlinkClick(CXTPMarkupObject* pSender, CXTPMarkupRoutedEventArgs* pArgs)
  171. {
  172. if (pSender->IsKindOf(MARKUP_TYPE(CXTPMarkupHyperlink)))
  173. {
  174. AfxMessageBox(_T("Hyperlink Clicked"));
  175. pArgs->SetHandled();
  176. }
  177. }
  178. void CMarkupSampleDlg::OnMoreDropDown()
  179. {
  180. CMenu menu;
  181. VERIFY(menu.LoadMenu(IDR_MENU_MORE));
  182. CXTPWindowRect rc(GetDlgItem(IDC_BUTTON_MORE));
  183. TrackPopupMenu(menu.GetSubMenu(0)->GetSafeHmenu(), 0, rc.left, rc.bottom, 0, m_hWnd, 0);
  184. }
  185. void CMarkupSampleDlg::OnMorePopupcontrol() 
  186. {
  187. CXTPPopupControl* pPopup = new CXTPPopupControl();
  188. pPopup->SetTransparency(200);
  189. pPopup->SetTheme(xtpPopupThemeOffice2003);
  190. pPopup->AllowMove(TRUE);
  191. pPopup->SetAnimateDelay(500);
  192. pPopup->SetPopupAnimation();
  193. pPopup->SetShowDelay(5000);
  194. pPopup->SetAutoDelete(TRUE);
  195. CXTPPopupItem* pItemText = (CXTPPopupItem*)pPopup->AddItem(new CXTPPopupItem(CRect(8, 12, 500, 130)));
  196. LPCTSTR lpszMarkup = 
  197. _T("<Grid VerticalAlignment='Center' HorizontalAlignment='Center'>")
  198.     _T("    <Grid.ColumnDefinitions>")
  199.     _T("        <ColumnDefinition/>")
  200.     _T("        <ColumnDefinition/>")
  201.     _T("        <ColumnDefinition/>")
  202.     _T("        <ColumnDefinition/>")
  203.     _T("    </Grid.ColumnDefinitions>")
  204.     _T("    <Grid.RowDefinitions>")
  205.     _T("        <RowDefinition/>")
  206.     _T("        <RowDefinition/>")
  207.     _T("        <RowDefinition/>")
  208.     _T("        <RowDefinition/>")
  209.     _T("        <RowDefinition/>")
  210.     _T("        <RowDefinition/>")
  211.     _T("     </Grid.RowDefinitions>")
  212.     _T("    <Border Grid.Column='0' Grid.Row='0'><TextBlock><Hyperlink>FTSE 100</Hyperlink></TextBlock></Border>")
  213.     _T("    <Border Grid.Column='0' Grid.Row='1'><TextBlock><Hyperlink>FTSE TechMark</Hyperlink></TextBlock></Border>")
  214.     _T("    <Border Grid.Column='0' Grid.Row='2'><TextBlock><Hyperlink>Dow Jones</Hyperlink></TextBlock></Border>")
  215.     _T("    <Border Grid.Column='0' Grid.Row='3'><TextBlock><Hyperlink>S&amp;P 500</Hyperlink></TextBlock></Border>")
  216.     _T("    <Border Grid.Column='0' Grid.Row='4'><TextBlock><Hyperlink>Dollar</Hyperlink></TextBlock></Border>")
  217.     _T("    <Border Grid.Column='0' Grid.Row='5'><TextBlock><Hyperlink>Euro</Hyperlink></TextBlock></Border>")
  218.     _T("    <Border Margin='5, 0, 5, 0' Grid.Column='1' Grid.Row='0'><TextBlock TextAlignment='Right'>5,990.12</TextBlock></Border>")
  219.     _T("    <Border Margin='5, 0, 5, 0' Grid.Column='1' Grid.Row='1'><TextBlock TextAlignment='Right'>804.10</TextBlock></Border>")
  220.     _T("    <Border Margin='5, 0, 5, 0' Grid.Column='1' Grid.Row='2'><TextBlock TextAlignment='Right'>8,322.12</TextBlock></Border>")
  221.     _T("    <Border Margin='5, 0, 5, 0' Grid.Column='1' Grid.Row='3'><TextBlock TextAlignment='Right'>860</TextBlock></Border>")
  222.     _T("    <Border Margin='5, 0, 5, 0' Grid.Column='1' Grid.Row='4'><TextBlock TextAlignment='Right'>1.56</TextBlock></Border>")
  223.     _T("    <Border Margin='5, 0, 5, 0' Grid.Column='1' Grid.Row='5'><TextBlock TextAlignment='Right'>1.59</TextBlock></Border>")
  224.     _T("    <Border Grid.Column='2' Grid.Row='0'><TextBlock TextAlignment='Right' Foreground='Green'>+50.1</TextBlock></Border>")
  225.     _T("    <Border Grid.Column='2' Grid.Row='1'><TextBlock TextAlignment='Right' Foreground='Red'>-0.4</TextBlock></Border>")
  226.     _T("    <Border Grid.Column='2' Grid.Row='2'><TextBlock TextAlignment='Right' Foreground='Green'>+78</TextBlock></Border>")
  227.     _T("    <Border Grid.Column='2' Grid.Row='3'><TextBlock TextAlignment='Right' Foreground='Green'>+15.43</TextBlock></Border>")
  228.     _T("    <Border Grid.Column='2' Grid.Row='4'><TextBlock TextAlignment='Right' Foreground='Green'>+0.06</TextBlock></Border>")
  229.     _T("    <Border Grid.Column='2' Grid.Row='5'><TextBlock TextAlignment='Right' Foreground='Red'>-0.11</TextBlock></Border>")
  230.     _T("</Grid>");
  231. pItemText->SetMarkupText(lpszMarkup);
  232. pItemText->FitToContent();
  233. CSize sz(pItemText->GetRect().Size());
  234. // close icon.
  235. CXTPPopupItem* pItemIcon = (CXTPPopupItem*)pPopup->AddItem(
  236. new CXTPPopupItem(CRect(sz.cx + 10, 10, sz.cx + 10 + 16, 10 + 16)));
  237. pPopup->GetImageManager()->SetIcon(IDI_POPUP_CLOSE, IDI_POPUP_CLOSE);
  238. pItemIcon->SetIconIndex(IDI_POPUP_CLOSE);
  239. pItemIcon->SetButton(TRUE);
  240. pItemIcon->SetID(XTP_ID_POPUP_CLOSE);
  241. pPopup->SetPopupSize(CSize(sz.cx + 30, sz.cy + 20));
  242. pPopup->Show(this);
  243. }
  244. void CMarkupSampleDlg::OnMoreUnicodesupport() 
  245. {
  246. m_wndStatic.SetMarkupText(
  247. "<?xml encoding='utf-8'?>"
  248. "<Border Background='#eeffee' BorderBrush='#999999' BorderThickness='1'>"
  249. "<ScrollViewer>"
  250. "<StackPanel TextElement.FontFamily='Tahoma' Margin='4'>"
  251. "<TextBlock TextWrapping='Wrap'><Bold>Markup supports Unicode text in ANSI applications.<LineBreak/>Use UTF-8 encode to enter it:</Bold></TextBlock>"
  252. "<TextBlock TextWrapping='Wrap'><Italic>Languages:</Italic> العربية (ar) • Azərbaycan (az) • Български (bg) • Català (ca) • Česky (cs) • Deutsch (de) • Ελληνικά (el) • English (en) • Esperanto (eo) • Español (es) • فارسی (fa) • Suomi (fi) • Français (fr) • 日本語 (ja) • 한국어 (ko) • Lietuvių (lt) • മലയാളം (ml) • Македонски (mk) • नेपाल भाषा (new) • ਪੰਜਾਬੀ (pa) • Polski (pl) • Português (pt) • Română (ro) • Русский (ru) • Svenska (sv) • தமிழ் (ta) • ไทย (th) • Türkçe (tr) • Українська (uk) • Tiếng Việt (vi) • 中文 (zh)</TextBlock>"
  253. "</StackPanel>"
  254. "</ScrollViewer>"
  255. "</Border>");
  256. }
  257. void CMarkupSampleDlg::OnTabControlSelChanged(NMHDR* pHeader, LRESULT* pResult)
  258. {
  259. m_wndList.ResetContent();
  260. if (m_wndTabControl.GetCurSel() == 0)
  261. {
  262. AddListItem(_T("<Border BorderThickness='2' BorderBrush='DodgerBlue' Margin='2' Padding='3'><StackPanel Orientation='Horizontal'>")
  263. _T("<Border Width='32' Height='32'/>")
  264. _T("<Grid><Grid.ColumnDefinitions><ColumnDefinition Width='Auto'/><ColumnDefinition Width='*'/></Grid.ColumnDefinitions>")
  265. _T("<Grid.RowDefinitions><RowDefinition/><RowDefinition/></Grid.RowDefinitions>")
  266. _T("<TextBlock TextAlignment='Right' FontWeight='Bold' Foreground='Navy' Text='Description:'/>")
  267. _T("<TextBlock TextAlignment='Right' Grid.Row='1' FontWeight='Bold' Foreground='Navy' Text='Current Price:'/>")
  268. _T("<TextBlock Margin='6, 0, 0, 0' Grid.Column='1' Text='Digital camera'/>")
  269. _T("<TextBlock Margin='6, 0, 0, 0'  Grid.Column='1' Grid.Row='1'  Text='$321'/>")
  270. _T("</Grid></StackPanel></Border>"));
  271. AddListItem(_T("<Border BorderThickness='2' BorderBrush='Orange' Margin='2' Padding='3'><StackPanel Orientation='Horizontal'>")
  272. _T("<Image Source='10'/>")
  273. _T("<Grid><Grid.ColumnDefinitions><ColumnDefinition Width='Auto'/><ColumnDefinition Width='*'/></Grid.ColumnDefinitions>")
  274. _T("<Grid.RowDefinitions><RowDefinition/><RowDefinition/></Grid.RowDefinitions>")
  275. _T("<TextBlock TextAlignment='Right' FontWeight='Bold' Foreground='Navy' Text='Description:'/>")
  276. _T("<TextBlock TextAlignment='Right' Grid.Row='1' FontWeight='Bold' Foreground='Navy' Text='Current Price:'/>")
  277. _T("<TextBlock Margin='6, 0, 0, 0' Grid.Column='1' Text='Snowboard and bindings'/>")
  278. _T("<TextBlock Margin='6, 0, 0, 0'  Grid.Column='1' Grid.Row='1'  Text='$150'/>")
  279. _T("</Grid></StackPanel></Border>"));
  280. AddListItem(_T("<Border BorderThickness='2' BorderBrush='Orange' Margin='2' Padding='3'><StackPanel Orientation='Horizontal'>")
  281. _T("<Image Source='10'/>")
  282. _T("<Grid><Grid.ColumnDefinitions><ColumnDefinition Width='Auto'/><ColumnDefinition Width='*'/></Grid.ColumnDefinitions>")
  283. _T("<Grid.RowDefinitions><RowDefinition/><RowDefinition/></Grid.RowDefinitions>")
  284. _T("<TextBlock TextAlignment='Right' FontWeight='Bold' Foreground='Navy' Text='Description:'/>")
  285. _T("<TextBlock TextAlignment='Right' Grid.Row='1' FontWeight='Bold' Foreground='Navy' Text='Current Price:'/>")
  286. _T("<TextBlock Margin='6, 0, 0, 0' Grid.Column='1' Text='Inside C#, first edition'/>")
  287. _T("<TextBlock Margin='6, 0, 0, 0'  Grid.Column='1' Grid.Row='1'  Text='$15'/>")
  288. _T("</Grid></StackPanel></Border>"));
  289. }
  290. if (m_wndTabControl.GetCurSel() == 1)
  291. {
  292. AddListItem(_T("<TextBlock Padding='2, 0, 2, 0'>Inbox</TextBlock>"));
  293. AddListItem(_T("<TextBlock Padding='2, 0, 2, 0'><Bold>Unread Mail</Bold> <Run Foreground='Blue'>(4730)</Run></TextBlock>"));
  294. AddListItem(_T("<TextBlock Padding='2, 0, 2, 0'><Bold>For Follow Up</Bold> <Run Foreground='Green'>[21]</Run></TextBlock>"));
  295. AddListItem(_T("<TextBlock Padding='2, 0, 2, 0'>Sent Items</TextBlock>"));
  296. AddListItem(_T("<TextBlock Padding='2, 0, 2, 0' TextWrapping='Wrap'><Bold FontSize='15'>W</Bold>e have been using the Xtreme Toolkit for a very short while in our company and already now the investment has paid for itself in terms of productivity gain. We have been down the road of using various non-commercial packages but time is quickly wasted on patching up these 'semi-products' for stability...Thank you for a great product!</TextBlock>"));
  297. AddListItem(_T("<Border Padding='2, 0, 2, 0' Background='Gold'><TextBlock TextAlignment='Center'>Centered Text</TextBlock></Border>"));
  298. AddListItem(_T("<TextBlock Padding='2, 0, 2, 0' TextWrapping='Wrap'><Underline>Some Text <Image Source='pen'/> Some another text</Underline></TextBlock>"));
  299. AddListItem(_T("<StackPanel Orientation='Horizontal' Margin='2'><StackPanel><Border Width='6' Height='6' Background='Red'/><Border Width='6' Height='6' Background='Green'/><Border Width='6' Height='6' Background='Blue'/></StackPanel><TextBlock Margin='2' VerticalAlignment='Center'>Stack Panel</TextBlock></StackPanel>"));
  300. AddListItem(_T("<Grid><Grid.ColumnDefinitions><ColumnDefinition MinWidth='30'/><ColumnDefinition MinWidth='100'/></Grid.ColumnDefinitions><Grid.RowDefinitions><RowDefinition Height='Auto'/><RowDefinition Height='Auto'/></Grid.RowDefinitions><Border Margin='1' BorderThickness='1' BorderBrush='Red'><TextBlock Foreground='Red'>Grid Text Column 1, Row 1</TextBlock></Border>")
  301. _T("<Border Margin='1' BorderThickness='1' Grid.Row='1' BorderBrush='Green'><TextBlock Foreground='Green'>Grid Text Column 1, Row 2</TextBlock></Border><Border Margin='1' BorderThickness='1' Grid.Column='1' Grid.Row='0' BorderBrush='Blue'><TextBlock Foreground='Blue'>Grid Text Column 2, Row 1</TextBlock></Border><Border Margin='1' BorderThickness='1' BorderBrush='Gold' Grid.Column='1' Grid.Row='1'><TextBlock Foreground='Gold'>Grid Text Column 2, Row 2</TextBlock></Border></Grid>"));
  302. }
  303. };
  304. BOOL CMarkupSampleDlg::OnEraseBkgnd(CDC* pDC) 
  305. {
  306. BOOL bResult = CXTResizeDialog::OnEraseBkgnd(pDC);
  307. #if 0
  308. CXTPMarkupContext* pContext = XTPMarkupCreateContext();
  309. CXTPMarkupUIElement* pElement = XTPMarkupParseText(pContext, _T("<TextBlock VerticalAlignment='Bottom'><Bold><Run Foreground='Blue'>Codejock</Run>Software</Bold></TextBlock>"));
  310. XTPMarkupRenderElement(pElement, pDC->GetSafeHdc(), CXTPClientRect(this));
  311. XTPMarkupReleaseElement(pElement);
  312. XTPMarkupReleaseContext(pContext);
  313. #endif
  314. return bResult;
  315. }
  316. void CMarkupSampleDlg::OnMoreTaskdialog() 
  317. {
  318. CXTPTaskDialog td;
  319. td.SetMainInstruction(_T("<TextBlock>Main <Italic ToolTip='Instruction'>Instruction</Italic></TextBlock>"));
  320. td.SetContent(_T("<TextBlock><Run>Content</Run> <Bold>Contet</Bold> <Run Foreground='Red'>Content</Run> <Hyperlink Tag='DoNothing' ToolTip='This is Link'>Link</Hyperlink></TextBlock>"));
  321. td.EnableMarkup();
  322. td.DoModal();
  323. }