西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁(yè) 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

WPF UI分析工具Snoop

2.8 綠色版
  • WPF UI分析工具Snoop2.8 綠色版
  • 軟件大小:753KB
  • 更新時(shí)間:2014-01-07 17:49
  • 軟件語(yǔ)言:英文
  • 軟件廠商:
  • 軟件類別:國(guó)外軟件 / 免費(fèi)軟件 / 編程輔助
  • 軟件等級(jí):4級(jí)
  • 應(yīng)用平臺(tái):Win7
  • 官方網(wǎng)站:暫無(wú)
  • 應(yīng)用備案:
好評(píng):50%
壞評(píng):50%

軟件介紹

WPF的UI分析工具,方便調(diào)試WPF樣式等,快速了解XAML代碼的結(jié)構(gòu),同時(shí)可以對(duì)相應(yīng)的屬性進(jìn)行修改或調(diào)整。它是一個(gè)WPF運(yùn)行時(shí)對(duì)Visual UI調(diào)試的一個(gè)工具,解壓就可以使用.

在WPF中我們可以使用Style來(lái)設(shè)置控件的某些屬性值,并使該設(shè)置影響到指定范圍內(nèi)的所有該類控件或影響指定的某一控件,比如說(shuō)我們想將窗口中的所有按鈕都保持某一種風(fēng)格,那么我們可以設(shè)置一個(gè)Style,而不必分別設(shè)置每個(gè)按鈕的風(fēng)格。

WPF UI分析工具Snoop怎么用?

下載安裝后,運(yùn)行Snoop.exe后出現(xiàn)一個(gè)類似工具條的界面:

下拉框中顯示的運(yùn)行的WPF應(yīng)用程序,如果還么有打開需要調(diào)試的程序,可以打開后再點(diǎn)擊【刷新】按鈕獲取應(yīng)用程序列表,選中應(yīng)用程序后,點(diǎn)擊Snoop圖標(biāo)()可以打開Snoop。

左邊是可視化樹列表,選中可視化元素后,右邊中間顯示該元素的屬性,右邊下面是元素的UI預(yù)覽界面。

當(dāng)選中元素后,目標(biāo)應(yīng)用程序的響應(yīng)元素會(huì)高亮顯示在一個(gè)紅色邊框內(nèi)。

選中元素可以直接在列表中選擇,也可以按住Ctrl-Shift后移動(dòng)鼠標(biāo)到目標(biāo)應(yīng)用程序的選擇元素上。

界面面板介紹

可視元素列表(Visual Tree View)

當(dāng)出現(xiàn)性能問題時(shí)可以查看一下子元素的數(shù)量,盡量使得子元素?cái)?shù)量達(dá)到最小。

通過(guò)過(guò)濾文本框右邊下拉控件可以查找錯(cuò)誤的綁定。(在調(diào)試OpenExpressApp過(guò)程中,snoop會(huì)出現(xiàn)一些bug,而使得OEA程序關(guān)閉,原因不明)

屬性面板(Property Grid)

我更新過(guò)屬性值,但是好像沒有反映到目標(biāo)應(yīng)用程序中去。

事件視圖(RoutedEvents View)

預(yù)覽窗口(Preview Area )

選擇元素的預(yù)覽界面,這個(gè)由于性能原因默認(rèn)是關(guān)閉的,不過(guò)我每次都是打開它,因?yàn)榭梢粤⒖炭吹叫Ч海?

放大視圖(Zoom View)/3D Zoom View

調(diào)試實(shí)例

在開發(fā)OpenExpressApp時(shí),發(fā)現(xiàn)了一個(gè)比較UI上的bug,我就是借助Snoop進(jìn)行調(diào)試解決的,以下是我遇到的問題。

解決UI BUG問題:

在模塊中,點(diǎn)擊Grid中間區(qū)域會(huì)出現(xiàn)一列長(zhǎng)條

解決:

因?yàn)榭瓷先ビ悬c(diǎn)像splitter控件,所以以為splitter位置出現(xiàn)問題,我把ListDetailForm.xaml列表和明細(xì)之間使用ResizingPanel代替Grid,也不是splitter了
  <AvalonDock:DocumentContent Title="內(nèi)容">
                                <DockPanel>
                                    <Grid>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="3*"/>
                                            <ColumnDefinition Width="7*"/>
                                        </Grid.ColumnDefinitions>
                                        <GridSplitter Width="5" ></GridSplitter>
                                        <DockPanel Name="listRegion">
                                         </DockPanel>
                                         <DockPanel Name="detailRegion" Grid.Column="1">
                                        </DockPanel>
                                     </Grid>
                                </DockPanel>
                             </AvalonDock:DocumentContent>
  <AvalonDock:ResizingPanel>
                                    <DockPanel Name="listRegion" AvalonDock:ResizingPanel.ResizeWidth="3*">
                                    </DockPanel>
                                    <DockPanel Name="detailRegion" AvalonDock:ResizingPanel.ResizeWidth="7*">
                                    </DockPanel>
                                </AvalonDock:ResizingPanel> 

發(fā)現(xiàn)問題依舊,這時(shí)就不知道是什么原因了,從樣子看出來(lái)還會(huì)是什么東東。這時(shí)正好snoop發(fā)布了,就用了一把。打開snoop看到這個(gè)豎條原來(lái)是CSLA中的BusyAnimation。我在Grid中間放置了一個(gè)顯示busy狀態(tài)的控件,終于找到罪魁禍?zhǔn)琢,原?lái)是這個(gè)東東在搗亂。
找到原因后就很好解決了,把BusyAnimation的VisibilityProperty綁定一下就可以解決了
            //綁定IsVisible
            Binding bdIsVisible = new Binding("IsBusy");
            bdIsVisible.Source = DataProvider;
            bdIsVisible.Converter = new BooleanToVisibilityConverter();
            bdIsVisible.BindsDirectlyToSource = true;
            busy.SetBinding(BusyAnimation.VisibilityProperty, bdIsVisible);

軟件標(biāo)簽: UI分析 WPF

其他版本下載

發(fā)表評(píng)論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評(píng)論 > 字?jǐn)?shù): 0/500

TOP
軟件下載