ãã®æçš¿ã¯ã
ãªã¢ã«ãããžã§ã¯ãã§Silverlight for PivotViewerã䜿çšããæ¹æ³ã®èšäºã®çµããã§ãã
ãã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯ãããŒã¿ã®ãã¹ãã³ã¬ã¯ã·ã§ã³ïŒãããã¿ã€ãïŒã衚瀺ã§ããããŒãžãæ¢ã«ãããŸãã 次ã®ã¹ãããã«é²ã¿......
ã¹ããã4ãDeep Zoom圢åŒã®ããŒã¿ãšç»åã䜿çšãããœãããŠã§ã¢xmlã®åœ¢æ
xmlã®ããŒã¿ã䜿çšããŠ.cxmlãã¡ã€ã«ãäœæããèŠçŽ ã®ç»åãDeep Zoom圢åŒã«å€æããå¿
èŠããããŸãã ååãšããŠãxmlã¯æšæºã®.NETã¯ã©ã¹ã䜿çšããŠç°¡åã«äœæã§ããDeep Zoomã䜿çšããã«ã¯ãã©ã€ãã©ãªDeep ZoomTools.dllïŒ
Deep Zoom Composerã®äžéšïŒã䜿çšããŸãã ããããããã«äŸ¿å©ãªæ¹æ³ã
ãããŸã
-Pauthorã§ãã ãã®ãããžã§ã¯ãã«ã¯ãã³ãŒãããåŒã³åºãããšãã§ãã.dllãšã³ãã³ãã©ã€ã³ãŠãŒãã£ãªãã£ã®äž¡æ¹ãå«ãŸããŠãããPivoââtã®ã³ã¬ã¯ã·ã§ã³ãäœæãããããããã®ã³ã¬ã¯ã·ã§ã³éã®å€æãä»ã®åœ¢åŒïŒCSVãExcelãçç»åä»ãCXMLã DeepZoomç»åãå«ãCXMLïŒããã³ãã®éã
Pauthorã¯ãPivoââtCollectionãPivoââtFacetCategoryãPivoââtItemãªã©ã®é«ã¬ãã«ãªããžã§ã¯ãã䜿çšããŠã³ã¬ã¯ã·ã§ã³ãäœæã§ãããšããç¹ã§äŸ¿å©ã§ããPauthorã®äœ¿çšäŸã¯ãhubrotopã§æäŸãã
ãŸããHabrahabrãµã³ãã«ã䜿çšããŠ10åã§ãµã€ãã³ã³ãã³ãPivotViewerãäœæããŸã ã
ãã¥ãŒã¢ãŒã®äœ¿ããããã倧å¹
ã«æ¹åã§ãã䟿å©ãªãã€ã³ãã1ã€ãããŸãã äœãæ£ç¢ºã«æãããŠããã®ãïŒã©ã®ã¢ãã«ã®ååãããã«ã人ç©ïŒãç解ããããã«ããŠãŒã¶ãŒããã¹ãŠã®åçãé£ç¶ããŠçªãããã«åŒ·å¶ããããããŸãããïŒ ãããã®ååãåçã«çŽæ¥å
¥ããŠãããšããã§ãããã ããããéåžžãç§ãã¡ã¯ååã眲åã®ãªãäœãã®ç»åãæã£ãŠããŸãã ãã®ãããDeep Zoomã³ã¬ã¯ã·ã§ã³ãäœæãããšããPauthorã§ã¯ãã©ã®ç»åã圢æããããã«åºã¥ããŠãhtmlãã³ãã¬ãŒããæå®ã§ããŸãã çŽç²ãªhtmlã«å ããŠããããã®ãã³ãã¬ãŒãã§ãã¬ãŒã¹ãã«ããŒã䜿çšã§ããŸãããã¬ãŒã¹ãã«ããŒã¯ããªããžã§ã¯ãã®èª¬æã®å¯Ÿå¿ããç¹æ§ã«çœ®ãæããããŸãã ç°¡åãªãã³ãã¬ãŒãã®äŸã次ã«ç€ºããŸãã
< html >
< head >
< style >
body {
margin: 0px;
}
img {
position: absolute;
top: 0; left: 0;
width: 100%; height: 100%;
}
p {
font-size: 100px;
color: white;
background: grey;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
filter: alpha(opacity=50);
padding: 20px;
}
</ style >
</ head >
< body >
< img src ="{image}" />
< p > {name} </ p >
</ body >
</ html >
* This source code was highlighted with Source Code Highlighter .
Pauthorã®ãããã©ã«ããŒã«ã¯ãä»ã«ãããã€ãã®äŸããããŸãã ãããŠãããã¯ããªããçµå©åŒã®å Žæãéžæããããšãå¯èœã«ãã
ãµã€ãããåããããèµ·ããããããšã®äŸã§ãïŒ
ãã®ãããäžèŠããã¹ãŠãæŽç¶ãšããŠããŸããå¿
èŠãªããŒã¿ã䜿çšããŠããã°ã©ã ã§ã³ã¬ã¯ã·ã§ã³ãäœæã§ããŸããæ®ãã¯Pivot Viewerãè¡ããŸãã ãã ããå©äŸ¿æ§ãé«ããããã«ãããã€ãã®è©³çŽ°ãè¿œå ããŠãåé¡ãããŸããã ã ãã...
ã¹ããã5ããªãã·ã§ã³ã§ãããå°ãããŠäŸ¿å©ãªèŠçŽ ã®ãã¡ã€ã«ãã£ããã³ã°:)
ãŠãŒã¶ãŒãç»åã®1ã€ãéžæãããšããã®è©³çŽ°ãªèª¬æãããããã£ãã¥ãŒã¢ãŒïŒãã¥ãŒã¢ãŒã®å³åŽïŒã«è¡šç€ºãããŸãã 説æã®ã¿ã€ãã«ã¯ãªã³ã¯ãšããŠåŒ·èª¿è¡šç€ºãããŠããŸããããã®ãªã³ã¯ãã¯ãªãã¯ãããšããã¥ãŒã¢ãŒã®è£éã§å®å
šã«è¡šç€ºãããŸãã
åæ§ã«ããŠãŒã¶ãŒã¯ãªããžã§ã¯ããããã«ã¯ãªãã¯ãããšãããã©ã«ãã®ã¢ã¯ã·ã§ã³ãçºçããããšã«æ
£ããŠããŸãã ãã¥ãŒã¢ã¯ã説æã®èŠåºããã¯ãªãã¯ããã®ãšåãæ¹æ³ã§ãç»åã®ããã«ã¯ãªãã¯ãåŠçããŸã-ã€ãã³ããçæãã決å®ãä»»ããŸãã
ããããåŠçããã«ã¯ãSilverlightãããžã§ã¯ãã®.xamlããŒãžã«æ°è¡ã®ã³ãŒããè¿œå ããŸãã
<pivot:PivotViewer
x:Name= "MainPivotViewer"
LinkClicked= "OnPivotViewerLinkClicked"
ItemDoubleClicked= "OnPivotViewerItemDoubleClicked"
/>
/// <summary>
/// Handle links clicked in the metadata pane.
/// </summary>
private void OnPivotViewerLinkClicked(Object sender, LinkEventArgs args)
{
OpenLink(args.Link.ToString());
}
/// <summary>
/// Handle double-clicks on collection items
/// </summary>
private void OnPivotViewerItemDoubleClicked(Object sender, ItemEventArgs args)
{
String linkUriString = MainPivotViewer.GetItem(args.ItemId).Href;
if (! String .IsNullOrWhiteSpace(linkUriString))
{
MainPivotViewer.CurrentItemId = args.ItemId;
OpenLink(linkUriString);
}
else
{
// Error: No Associated Web Page: the item that was double-clicked has no value for the 'Href' field
}
}
* This source code was highlighted with Source Code Highlighter .
ãã®å ŽåãOpenLinkãã«ããŒã¡ãœãããåŒã³åºããŸãããã®ã¡ãœããã¯ããªããžã§ã¯ãã®èª¬æãå«ãããŒãžãå¥ã®ãã©ãŠã¶ãŒãŠã£ã³ããŠã§éããŸãã URLãããã²ãŒããã代ããã«ãéžæãããªããžã§ã¯ããã«ãŒãã«è¿œå ãããããªããžã§ã¯ãã®ä»ã®ã³ã¬ã¯ã·ã§ã³ãéãããããããšãã§ããŸãã 説æã®ãµã€ãºã倧ããããªãããã«ãããã§ã¯OpenLinkã³ãŒãã¯æäŸããŸããã ãããèŠãããšãã§ããPivoââtã®ãã©ã«ããŒãããµã³ãã«ã®ã€ãã³ãåŠçã³ãŒãã®æ®ããã³ããŒã§ããŸãïŒç§ã®å Žåã¯ãCïŒ\ Program FilesïŒx86ïŒ\ Microsoft SDKs \ Silverlight \ v4.0 \ PivotViewer \ Jun10 \ Sourceã ïŒ
ãã®äŸã§ã¯ãå¥ã®äŸ¿å©ãªæ©èœã«ã€ããŠèª¬æããŸãã ãããããã¥ãŒã¢ãŒã䜿çšãããšãåç»åã«ããã€ãã®ã«ã¹ã¿ã ã¢ã¯ã·ã§ã³ãè¿œå ã§ããŸãã ã¢ã¯ã·ã§ã³ã¯ãéžæãããªããžã§ã¯ãã«å¯ŸããŠå®è¡ã§ããã¢ã¯ã·ã§ã³ã§ãã ã¢ã¯ã·ã§ã³ããšã«ãã¢ã€ã³ã³ãååãããã³ã³ãŒã«ããã¯ã¡ãœãããæå®ããå¿
èŠããããŸãã 次ã«ãç»åã«ã«ãŒãœã«ãåããããšãPivoââtã¯äœ¿çšå¯èœãªã¢ã¯ã·ã§ã³ã®ãªã¹ãã衚瀺ããŸãã Pivotã®äŸã§ã¯ããã¹ã±ãããã補åãè¿œå ãŸãã¯åé€ããããã«ã¢ã¯ã·ã§ã³ã䜿çšãããŠããŸãã
ãããŠãã1ã€ã®äŸ¿å©ãªç¬éã§ãã 倧éã®ããŒã¿ãé²èŠ§ãããšãããã¹ãŠã®ã¹ããŒã¹ã倧åã§ãã ãã ããå€ãã®ãµã€ãã§ã¯ã¬ã€ã¢ãŠããåºå®ãããŠãããç»é¢ã®äžéšããå æããŠããŸããïŒæ¬çªç°å¢ã§é »ç¹ã«ééãããªãã·ã§ã³ã¯ã1024pxå¹
ã®è§£å床ãããã²ãŒãããããšã§ãïŒã Silverlightã¢ããªã±ãŒã·ã§ã³ã«ã¯ããã«ã¹ã¯ãªãŒã³ã¢ãŒãã«åãæ¿ãã䟿å©ãªæ©èœããããŸããããã¯ãIsFullScreenããããã£ã®å€ãå€æŽããã ãã§ååã§ãã
å¿
èŠãªã®ã¯ãäœããã®æ¹æ³ã§ãã¿ã³ãPivot Viewerã«æ¥ç¶ããŠãã¢ãŒããå€æŽããããšã§ãã次ã«äŸã瀺ããŸãã
< Grid x:Name ="LayoutRoot" Background ="White" >
< pivot:PivotViewer
x:Name ="MainPivotViewer"
LinkClicked ="OnPivotViewerLinkClicked"
ItemDoubleClicked ="OnPivotViewerItemDoubleClicked"
/>
< Image
x:Name ="btFullScreen"
Width ="32" Height ="32" MinWidth ="32" MaxWidth ="32" MinHeight ="32" MaxHeight ="32"
Margin ="0,0,12,12"
HorizontalAlignment ="Right" VerticalAlignment ="Bottom"
Source ="{ }"
/>
</ Grid >
* This source code was highlighted with Source Code Highlighter .
ãã³ãã©ãŒãè¿œå ããŸãïŒ
private static readonly BitmapImage imageOff = new BitmapImage({ });
private static readonly BitmapImage imageOn = new BitmapImage({ });
btFullScreen.MouseLeftButtonDown +=
delegate (Object s, MouseButtonEventArgs args)
{
if (Application.Current.Host.Content.IsFullScreen)
{
Application.Current.Host.Content.IsFullScreen = false ;
btFullScreen.Source = imageOn;
}
else
{
Application.Current.Host.Content.IsFullScreen = true ;
btFullScreen.Source = imageOff;
}
};
* This source code was highlighted with Source Code Highlighter .
ãããããããããããã¢ãŒãã«å¿ããŠéº»ã®çµµãå€æŽããŸãã
ç§ã®å Žåã次ã®ããã«ãªããŸãã
5ã€ã®ã¹ããããçµãŠãäœæ¥ã®çµæãè³è³ããããšãã§ããŸãã ãããããã®èª¬æã¯ãéçºäžã«çºçããåé¡ã解決ããçµéšãå
±æããŠããªãã£ãå Žåãéåžžã®ãæ¹æ³ããšå€§å·®ãããŸããã ç§ãæžããèšäºã®åé ã§ã森ã®äžãå°ãå€ããããšãããããšãèŠããŠããŸããïŒ ããã¯äºå®ã§ãããé害ã¯ããããã³ã³ãããŒã«ã®ãšã©ãŒåŠçã«ãããŸãã
ç§ã®æèŠã§ã¯ãéåžžã«å®å®ããŠåäœããŸãã 確ãã«ã2é±éã®äœæ¥ã®åŸããSilverlightãã©ã°ã€ã³ã誀ã£ãæäœãå®è¡ãããã以äžäœæ¥ããããšã¯ã§ããŸããããšããæ²ããã¡ãã»ãŒãžã«2ååºããããŸããããåçŽãªããŒãžã®ãªããŒãã§ãã¹ãŠãä¿®æ£ãããŸããã äžè¬ã«ããã¹ãŠã®å©ç¹ãèæ
®ããŠãç¹ã«ããã¯æåã®ããŒãžã§ã³ã«ãããªãããã泚æãæãããšã¯ã§ããŸããã
ãããããããã°ã«æéãè²»ãããã®ã¯ãšã©ãŒã¡ãã»ãŒãžã§ãã ããã«ã€ããŠããã«èª¬æããŸããã2ã€ã®äŸ¿å©ãªã«ãŒã«ãèŠããŠããã§ãããã
- Pivotã衚瀺ãåæ¢ããã ãã®å ŽåãããŒã¿ãå°ç¡ãã«ãªã£ãŠããå¯èœæ§ããããŸãã 圌ã«ç°¡åãªãã¹ãã³ã¬ã¯ã·ã§ã³ãã¹ãªãããããŠãã ããã 皌ãã ïŒ æ¬¡ã«ãããŒããã£ããžã§ã³æ¹åŒã䜿çšããŠããã¹ãŠãéé£ããvalue \å±æ§ã«é åãçãããŸã§ãå
ã®ããŒã¿ããxmlã®æçãç Žæ£ããŸãã
- äœããã®ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããå ŽåïŒããã¯åžžã«ããã§ã¯ãããŸããïŒ-æåã©ããã«åãåããªãã§ãã ããã ã¡ãã»ãŒãžã®ããã¹ãããšã©ãŒã®å®éã®åå ãšã¯é¢ä¿ããªãå ŽåããããŸãã
ããã§ã¯ããšã©ãŒã«ã€ããŠè©³ããèŠãŠãããŸãããã ã¡ãªã¿ã«ããã®èšäºãèªãé ã«ã¯ãäœãããã§ã«ä¿®æ£ãããŠããå¯èœæ§ããããæ°ãããã®ãè¿œå ã§ããããšãå¿ããªãã§ãã ãã:)
- ãã¢ã€ãã ã¯æ¢ã«å¥ã®ã¢ã€ãã ã®åã§ãããšããã¡ãã»ãŒãžïŒãŸãã¯è±èªã®åçã®ãã®ïŒãåãåããŸããã
XMLã®æ§é ã確èªããŸãã-ãã¹ãŠå€§äžå€«ã§ããïŒ æ¬¡ã«ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ããŒãžã§ã³ã確èªããŸãã 32ãããããŒãžã§ã³ã®Windows 7ã®æè
ã¯ã©ã³ã¯ã倱ããŸãã
ãã®ãšã©ãŒã¯ãã³ã¬ã¯ã·ã§ã³ãPivotViewerã«ããŒãããããšãããšãã«çºçããŸãã ãã©ãŒã©ã å
ã移åãããšããã®ãšã©ãŒã®ããŸããŸãªçç±ã瀺ãããŸãã ãããããã®çç±ã¯OSããŒãžã§ã³ã«ããå¯èœæ§ãé«ãã§ãã Microsoftã®ãã€ãã£ããµã³ãã«ã§ãããåäœããŸããããŸããWindows 7ã®64ãããããŒãžã§ã³ããã³ä»ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ã¯ãããããšã³ãŒãã®äž¡æ¹ãæ£åžžã«åäœããŸãã
- ãã¢ã€ãã ã¯æ¢ã«å¥ã®ã¢ã€ãã ã®åã§ãããšããã¡ãã»ãŒãžã衚瀺ãããŸãããæåã®æ®µèœã¯æããã«é©çšãããŸããã
èããããçç±ã¯ãxmlã¿ã°ã®å±æ§å€ã®ãšã©ãŒã§ãã ç§ã®å Žåããã®çç±ã¯ã誀ã£ãŠCollectionã¿ã°ã®pïŒIconå±æ§ã«ãç»åã®URLã§ã¯ãªããã³ã³ãã¥ãŒã¿ãŒäžã®ç»åãžã®ç©ççãªãã¹ã瀺ããããã§ãã
- ãæååãã¡ã»ââããã®åãç¡å¹ã§ãïŒæååããšããé¢çœãã¡ãã»ãŒãžãåãåããŸããã
çç±ã¯ãStringåã®ã«ããŽãªïŒFacetCategoryïŒã®å€ãšããŠç©ºã®æååãæå®ã§ããªãããã§ãã ãã®å Žåãå€ããŸã£ããè¿œå ããªãã§ãã ããã
- ããæç¹ã§ãããŒã¿ã¯ãšã©ãŒã¡ãã»ãŒãžãªãã§ã¬ã³ããªã³ã°ãåæ¢ããŸããã
èããããçç±ã¯ãã¿ã€ãããããã§ã¯ãªããã¿ã€ãã®ã«ããŽãªãŒã«åºåãæåãããã䜿çšããŠããããšã§ãã ãããããPivoâât Viewerã«ç®çã®æåæ
å ±ãäŒããæ¹æ³ãç解ã§ããŸããã§ããã å°ãªããšãLanguageããããã£ãå€æŽããweb.configã§ã«ã«ãã£ãæ瀺çã«æå®ããŠã圹ã«ç«ããªãã£ããããViewerã¯ãããã®ã¿ãæå¹ãªã»ãã¬ãŒã¿ã«ãªãåŸããšåºãä¿¡ããŠããŸããã
ç§ã®å Žåãåé¡ããéããã°ããã§ãã ãã²ãŒã ãµã€ãºïŒMbåäœïŒãã«ããŽãªã«Numberã䜿çšããŸããããæŽæ°ã«äžžãããšãã£ã«ã¿ãŒãç°¡åã«ãªãã ãã ãšæããŸããã 誰ãããã®åé¡ã解決ããæ¹æ³ãèŠã€ããã-æžããŠã説æãä¿®æ£ããŸãã
- ãSilverlightã¢ããªã±ãŒã·ã§ã³ã§æªåŠçã®ãšã©ãŒãçºçããŸãããå€ãæªå®çŸ©ã«ããããšã¯ã§ããŸããã ãã©ã¡ãŒã¿ãŒåïŒdisplayTextã
èããããçç±ã¯ãã¿ã€ããNumberã®ã«ããŽãªãŒã®å€ã0ãã§ãã ã¯ããéåžžã«éèŠãªå€ã«ãªãå¯èœæ§ããããŸããããã¥ãŒã¢ã®ãšã©ãŒïŒãŸãã¯æšæž¬ã§ããªãã£ãããžãã¯ïŒã«ãããæ°åã®ãŒãå€ã¯æååã«ããŽãªã®ç©ºè¡ã®ããã«äœ¿çšã§ããŸããã ãããã£ãŠããªããžã§ã¯ãã®ãã®ã«ããŽãªã®å€ãæå®ããªãã§ãã ããã
ãããŠæåŸã«ãããäžã€ã®ãã³ãã ãã©ãŠã¶ã¯ãããŒã¿ã³ã¬ã¯ã·ã§ã³ãç©æ¥µçã«ãã£ãã·ã¥ããŸãã Ctrl + F5ã¯åœ¹ã«ç«ã¡ãŸããïŒããŒã¿éã¯æ°ã¡ã¬ãã€ãã«ãªãå¯èœæ§ããããããå®éã®ã¢ããªã±ãŒã·ã§ã³ã§ã®ã¿ãããåã¶ããšãã§ããŸãïŒã ããããXMLã䜿çšããŠæé©ãªãã£ã«ã¿ãŒã»ãããèŠã€ããå ŽåïŒIEãŸãã¯FFãã©ãŠã¶ãŒã®ããŒã«ããŒã«[å±¥æŽãã¯ãªã¢]ãã¿ã³ã衚瀺ããå ŽåïŒãããã«ããæéã倧å¹
ã«ç¯çŽã§ããŸãã ããããOperaã¯Ctrl + Rã®ãã¹ãŠã®ããŒã¿ãå®å
šã«æ¶å»ããŸãã
éåžžãèšäºã®æåŸã«èŠçŽããå¿
èŠããããŸãã ãŸã...ãã®ã¢ã€ãã ã¯ããã€ããŒãªæ¬ é¥ã«ãã£ãŠæãªãããã«ã¯ããŸãã«ãè¯ãã§ã-ããã¯çŽ æŽãããã£ãã§ãïŒ åœŒãæ€çŽ¢ãæ¬åœã«åçŽåã§ãããã©ããã«éåžžã«èå³ãããã®ã§ãç§ãã¡ã¯ç§ãã¡ã®ãµã€ãã§æ°ããå®è£
ãåŸ
ã£ãŠããŸã:)
ããã°ã©ãã³ã°ã楜ããã§ãã ããïŒ