2012-12-12 30 views
0

我需要移植一個安裝有WP8小部件的Android應用程序。在WP8中創建自己的切換按鈕?

爲此,我需要創建自己的切換按鈕(用戶控件)。所以我剛剛創建了一個名爲MyToggleButton的Button的子類,並使用標準回調來更改圖像和按鈕的文本。

趕上點擊下來,我用onMouseEnter當點擊完成,即moud按鈕再漲我用onMouseLeave

Wihle這個工作沒有問題 - 問題是,點擊onMouseEnter時似乎是這個按鈕用一個很小的延遲來改變ButtonImage,而不是一個普通的按鈕(我使用Visual Studio Express 2012和Emulator,因爲我還沒有真正的手機進行測試)

我發現其他創建用戶控件的方式在XAML中指定很多,但是我發現所描述的僅僅使用標準方法更簡單。我只是不確定,這個最小的延遲來自哪裏。

+0

我可能是一個更好的主意來自'CheckBox'或'RadioButton'這種方式,您都內置在'IsChecked'(切換)功能來獲得。 –

回答

0

下面是使用圖像的簡化「切換」按鈕。基於CheckBox

<Style TargetType="{x:Type CheckBox}" > 
      <Setter Property="Template" > 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type CheckBox}"> 
         <Grid> 
          <ContentPresenter x:Name="Part_Content" /> 
          <Image Name="image" Source="/WpfApplication4;component/Images/avatar63.jpg" /> 
         </Grid> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsChecked" Value="true" > 
           <Setter TargetName="image" Property="Source" Value="/WpfApplication4;component/Images/imagesCA7JZMMY.jpg"/> 
          </Trigger> 
          <Trigger Property="IsChecked" Value="False" > 
           <Setter TargetName="image" Property="Source" Value="/WpfApplication4;component/Images/avatar63.jpg"/> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
+0

非常感謝,但是當我在我的項目中複製代碼(使用VisualStudioExpress2012)時,我在TargetType =「{x:Type CheckBox}中得到一個錯誤 - 類型在Silverlight項目中不受支持,因此我將它替換爲:TargetType = 「CheckBox」,但ControlTemplate.Triggers無法識別 - 我剛剛開始使用WP8並從主頁下載了正常的SDK8,我可能是否有錯誤的設置? – user387184

0

您應該不會在第一種情況下進行自定義切換。從Android移植應用程序並不意味着您也必須移植其圖形。他們根本不分享相同的設計語言。你應該堅持原生的WP8切換。

但是,如果您確實想創建自定義複選框/切換,則應該檢查this。這是爲WP7製作的,但它也適用於WP8。

相關問題