日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)C#.NET → 用WPF搭建自己的P2P 播放器

      用WPF搭建自己的P2P 播放器

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時(shí)間:2013/5/1 19:39:58字體大。A-A+

      作者:Gavin_gzm點(diǎn)擊:85次評論:0次標(biāo)簽: WPF

      Actipro WPF Studiov11.1.0541 注冊版
      • 類型:編程控件大。58.9M語言:英文 評分:6.6
      • 標(biāo)簽:
      立即下載

      本次是用WPF實(shí)現(xiàn)的是一款基于BT協(xié)議的P2P 播放器。內(nèi)核是用vlc來實(shí)現(xiàn)。結(jié)果辛辛苦苦做了半天結(jié)果發(fā)現(xiàn)用wpf不能滿足公司一些需求。

      所以擱淺,專用winform去開發(fā),主要2個(gè)原因:

      1、界面美觀時(shí)發(fā)現(xiàn)渲染視頻的時(shí)候會有問題,這個(gè)問題等會會講。

      2、主要原因如果wpf這個(gè)程序開發(fā)完成是不能內(nèi)嵌到網(wǎng)頁的。因?yàn)楹罄m(xù)還要要開發(fā)IE ActiveX 插件。然后總監(jiān)就說:那就不用wpf了,轉(zhuǎn)用winform。 我只能呵呵!呵呵呵呵!

      wpf我一竅不通,之前完全沒接觸過。做出這個(gè)效果已是我最大能力了。(專業(yè)人員請用看小白的態(tài)度)

      ok,這里說下第一個(gè)問題,在渲染視頻的時(shí)候會發(fā)現(xiàn)只有聲音,沒有畫面,在我找了2天問題之后發(fā)現(xiàn)是因?yàn)榻缑嬗昧薃llowsTransparency="True" WindowStyle="None" 這段屬性的修改。如果修改一下AllowsTransparency="False" WindowStyle="XXX"(除了不是None之外的都可以)。則就變成這樣了。

       仔細(xì)看,會多了個(gè)邊框。只有這樣,畫面才能出來。 這里可能只有自己重繪這個(gè)界面元素。希望有人能指教一下。

      這里我會將這個(gè)界面的項(xiàng)目打包上傳,點(diǎn)擊這里下載。(有點(diǎn)大,含有vlc的dll文件)因?yàn)槿サ袅薟indowStyle,鼠標(biāo)在邊框進(jìn)行縮放效果和最大化處理以及多顯示器上的兼容都要自己來實(shí)現(xiàn)。項(xiàng)目都會有,我其他文章也有對這些技術(shù)點(diǎn)進(jìn)行部分的講解,這個(gè)就自己去看啦。連接就不打了。

      <!--音量滾珠-->
          <Style TargetType="Thumb" >
              <Setter Property="Template">
                  <Setter.Value>
                      <ControlTemplate TargetType="Thumb">
                          <Grid>
                              <vsm:VisualStateManager.VisualStateGroups>
                                  <vsm:VisualStateGroup x:Name="CommonStates">
                                      <vsm:VisualStateGroup.Transitions>
                                          <vsm:VisualTransition GeneratedDuration="0:0:0.1" To="MouseOver"/>
                                          <vsm:VisualTransition GeneratedDuration="0:0:0.1" To="Pressed"/>
                                      </vsm:VisualStateGroup.Transitions>
                                      <vsm:VisualState x:Name="Normal"/>
                                      <vsm:VisualState x:Name="MouseOver">
                                          <Storyboard>
                                              <ColorAnimationUsingKeyFrames Storyboard.TargetName="Down" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" BeginTime="00:00:00" Duration="00:00:00.0010000">
                                                  <SplineColorKeyFrame KeyTime="00:00:00" Value="#004486B6"/>
                                              </ColorAnimationUsingKeyFrames>
                                              <DoubleAnimationUsingKeyFrames Storyboard.TargetName="Down" Storyboard.TargetProperty="(UIElement.Opacity)" BeginTime="00:00:00" Duration="00:00:00.0010000">
                                                  <SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/>
                                              </DoubleAnimationUsingKeyFrames>
                                          </Storyboard>
                                      </vsm:VisualState>
                                      <vsm:VisualState x:Name="Pressed">
                                          <Storyboard>
                                              <DoubleAnimationUsingKeyFrames Storyboard.TargetName="Down" Storyboard.TargetProperty="(UIElement.Opacity)" BeginTime="00:00:00" Duration="00:00:00.0010000">
                                                  <SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/>
                                              </DoubleAnimationUsingKeyFrames>
                                          </Storyboard>
                                      </vsm:VisualState>
                                      <vsm:VisualState x:Name="Disabled">
                                          <Storyboard>
                                              <DoubleAnimationUsingKeyFrames Storyboard.TargetName="Disabled" Storyboard.TargetProperty="(UIElement.Opacity)" BeginTime="00:00:00" Duration="00:00:00.0010000">
                                                  <SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/>
                                              </DoubleAnimationUsingKeyFrames>
                                          </Storyboard>
                                      </vsm:VisualState>
                                  </vsm:VisualStateGroup>
                              </vsm:VisualStateManager.VisualStateGroups>
                              <Ellipse x:Name="Down" Grid.Column="0" Width="15" Height="15" StrokeThickness="0.5" Opacity="0.1" Fill="#FF4486B6" Margin="0,0,0,0">
                                  <Ellipse.Stroke>
                                      <LinearGradientBrush EndPoint="0.507,-1.856" StartPoint="0.507,1.515">
                                          <GradientStop Color="#FF4E5F70" Offset="0"/>
                                          <GradientStop Color="#FFF6F7FA" Offset="1"/>
                                      </LinearGradientBrush>
                                  </Ellipse.Stroke>
                              </Ellipse>
                              <!--音量的滾珠-->
                              <Ellipse x:Name="VolBackground" Grid.Column="0" Width="12" Height="12" StrokeLineJoin="Round" StrokeThickness="1.6" Opacity="0.9" Stroke="#00232425">
                                  <Ellipse.Fill>
                                      <LinearGradientBrush EndPoint="0.5,0" StartPoint="0.5,1">
                                          <GradientStop Color="#66B3FF" Offset="0.3"/>
                                          <GradientStop Color="#FF6AC2F3" Offset="1"/>
                                      </LinearGradientBrush>
                                  </Ellipse.Fill>
                              </Ellipse>
                              <Path x:Name="WhiteBubble" Grid.Column="0" Width="6" Height="2" Stretch="Fill" StrokeLineJoin="Round" StrokeThickness="1.8" Data="M4.2160064,2.8920099 C4.2160064,1.7874404 5.1114369,1.7153466 6.2160064,1.7153466 L22.679308,1.7153466 C23.783877,1.7153466 24.679308,1.7874404 24.679308,2.8920099 24.679308,2.8920099 4.2160064,2.8920099 4.2160064,2.8920099 z" Margin="0,0,0,7.5" VerticalAlignment="Stretch" Opacity="0.5">
                                  <Path.Stroke>
                                      <!--滾珠亮點(diǎn)色-->
                                      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                          <GradientStop Color="#FFFFFFFF" Offset="0.5"/>
                                          <GradientStop Color="#FFCDCDCD" Offset="1"/>
                                      </LinearGradientBrush>
                                  </Path.Stroke>
                              </Path>
                              <Ellipse x:Name="DisabledOverlay" Width="11" Height="10.5" StrokeLineJoin="Round" StrokeThickness="0.5" Opacity="0" Stroke="#B2FFFFFF" Margin="1.5,233.25,1.5,233.25" Fill="#B2FFFFFF"/>
                          </Grid>
                          <ControlTemplate.Triggers>
                              <Trigger Property="IsFocused" Value="True"/>
                              <Trigger Property="IsMouseOver" Value="True">
                                  <Setter Property="Cursor" TargetName="VolBackground" Value="Hand"></Setter>
                                  <Setter Property="Stroke" TargetName="VolBackground" >
                                      <Setter.Value>
                                          <LinearGradientBrush EndPoint="0.5,0" StartPoint="0.5,1">
                                              <GradientStop Color="#2894FF" Offset="0.3"/>
                                              <GradientStop Color="#66B3FF" Offset="1"/>
                                          </LinearGradientBrush>
                                      </Setter.Value>
                                  </Setter>
                                  <Setter Property="Stroke" TargetName="WhiteBubble">
                                      <Setter.Value>
                                          <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                              <GradientStop Color="#FCFCFC" Offset="0.6"/>
                                              <GradientStop Color="#FFECEC" Offset="1"/>
                                          </LinearGradientBrush>
                                      </Setter.Value>
                                  </Setter>
                              </Trigger>
                              <Trigger Property="IsEnabled" Value="False"/>
                          </ControlTemplate.Triggers>
                      </ControlTemplate>
                  </Setter.Value>
              </Setter>
          </Style>

      這個(gè)是要利用到WPFToolkit.dll的引用才可以。像這些界面控件的美化一般是用Blend工具來做的。我都是代碼Copy一些,然后修改一些。 ^.^ 親,代碼要會抄哦。當(dāng)然了,前提你得懂。這樣也是一種學(xué)習(xí)

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)